** Final Release ** PuppetDB 2.1.0 final - July 8th, 2014. PuppetDB 2.1.0 Downloads ------------------------ Available in native package format in the release repositories at: http://yum.puppetlabs.com and http://apt.puppetlabs.com For information on how to enable the Puppet Labs repos, see: http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#open-source-repositories Blog: http://puppetlabs.com/blog/introducing-puppetdb-2.1.0 Binary tarball: http://downloads.puppetlabs.com/puppetdb/ Source: http://github.com/puppetlabs/puppetdb Please report feedback via the Puppet Labs tickets site, using an affected PuppetDB version of 2.1.0: https://tickets.puppetlabs.com/browse/PDB Documentation: http://docs.puppetlabs.com/puppetdb/2.1/ Puppet module: http://forge.puppetlabs.com/puppetlabs/puppetdb PuppetDB 2.1.0 Release Notes -------------------------------- PuppetDB 2.1.0 is a feature release focusing on new query capabilities, streaming JSON support on all endpoints and a new report status field for determining if a Puppet run has failed. Note that this release is backward compatible with 2.0.0, but users must upgrade PuppetDB terminus to 2.1.0 when upgrading the PuppetDB instance to 2.1.0. Things to take note of before upgrading: * There is a known issue in Puppet 3.4.0, 3.4.1 and 3.4.2 with duplicate failed events here: https://tickets.puppetlabs.com/browse/PUP-1524. We recommend upgrading to Puppet 3.4.3 or greater. * If you receive the error “Could not open /etc/puppet/log4j.properties”, this is because we have changed the packaged config.ini to point at a new logging configuration file: logback.xml. However during package installation some package managers will cowardly refuse to just update config.ini, this in particular affects RPM. After upgrading you should ensure any .rpmnew files are reviewed and that changes to our vendored version are now merged with your version of config.ini on disk. See this ticket for more information: https://tickets.puppetlabs.com/browse/PDB-656 * Make sure all your PuppetDB instances are shut down and only upgrade one at a time. * As usual, don’t forget to upgrade your puppetdb-terminus package also (on the host where your Puppet Master lives), and restart your master service. New Features: * (PDB-660) Switch all query endpoints to stream JSON results The following endpoints have been switched over to streaming: - event-counts - reports - nodes - environments - events Using 'event-query-limit' is now deprecated, use the normal paging/streaming functionality to achieve the same results. * (PDB-658, PDB-697) Implement new "query engine" for v4 This rewrite of the v4 API query infrastructure unifies query operators across all endpoints. Each endpoint now supports all operators appropriate for the given field of that type. As an example, any string field can now be searched by regular expression. All dates can be search with inequality operators like < or > for searching via date ranges. There are also many new queryable fields. Below summarizes the new features of the switch to this query engine events endpoint - Added configuration-version as a queryable field - Added containment-path as a queryable field (queryable in a way similar to tags) nodes endpoint - Added facts-timestamp, catalog-timestamp, report-timestamp as a queryable field reports endpoint - Added puppet-version, report-format, configuration-version, start-time, end-time, receive-time, transaction-uuid as queryable fields null? operator - new operator that checks for the presence or absence of a value Some endpoints previously returned NULL values when using a "not" query such as ["not", ["=", "line", 10]]. The query engine follows SQL semantics, so if you want NULL values, you should explicty ask for it like: ["or", ["not", ["=", "line", 10]] ["null?", "line" true]] * (PDB-162) Add regexp support to resource parameter queries The query engine supported this, but the existing "rewrite" rule, to go from the shorthand parameter syntax to the nested resource query didn't recognize ~. That is fixed with this commit, so regexps will now work on parameters. * (PDB-601) Do not require query operator on reports endpoint With this pull request, hitting the reports endpoint without a query argument will return the full reports collection. This behavior is consistent with that of the nodes, facts, and resources endpoints. * (PDB-651) Allow the web app URL prefix to be configurable Previously PuppetDB always used the context root "/", meaning all queries etc would be something like "http://localhost:8080/v4/version". This change allows users to specify a different context root, like "http://localhost:8080/my-context-root/v4/version". See the url-prefix configuration documentation for more info * (PDB-16) Add status to stored reports Previously there was no way to distinguish between failed puppet runs and successful puppet runs as we didn't store report status. This commit adds support for report status to the "store report" command, v4 query API and model. * (PDB-700) Allow changes to maxFrameSize in activemq maxFrameSize previously defaulted to 100 MB. Now default is 200 MB with user configurability. Bug Fixes and Maintenance: * (PDB-675) Fix Debian/Ubuntu PID missing issue In the past in Debian and Ubuntu releases we had issues where the PuppetDB system V init scripts were not stopping the PuppetDB process whenever a PID file was missing. This patch now introduces a fallback that will kill any java process running as the puppetdb user, if the PID file is missing. * (PDB-551) Created a versioning policy document This document let's consumers of the PuppetDB API know what to expect from an API perspective when new versions of PuppetDB are release. This document is a separate page called "Versioning Policy" and is included in our API docs * (PDB-164) Add documentation for select-nodes subquery operator This pull request supplies V4 API documentation for the select-nodes subquery operator, which was previously supported but undocumented. * (PDB-720) Fix services test with hard coded Jetty port Fixed this issue by moving code that dynamically picks a free port out of import-export-roundtrip and into a separate ns. I just switched the services test to use that code and there should no longer be conflicts. * (RE-1497) Remove quantal from build_defaults This commit removes quantal from all build defaults because it is end of life. It removes the defaults from the build_defaults yaml. * (PDB-240) Replace anonymize.clj read-string with clojure.edn/read-string This patch replaces a call to read-string in anonymize.clj with a call to clojure.edn/read-string. Unlike clojure.core/read-string, clojure.edn/read-string is safe to use with untrusted data and guaranteed to be free of side-effects. * (PDB-220) Coerce numerical function output in manifests to string Previously, when a user defined a numeric-valued function in a puppet manifest and submitted it to notify, the resource-title would remain numeric and PuppetDB would throw exceptions while storing reports. Per the docs, resource-title must be a string. This pull request avoids the problem by coercing resource-title to string. * (PDB-337) Remove extraneous _timestamp fact Previously a _timestamp fact was submitted to puppetDB even though _timestamp was originally intended for internal use. This commit strips internal data (all preceded by "_") from the factset before submission to PuppetDB. * (PDB-130) Fixes a nasty traceback exposed when users run import from command line with an invalid filename. A friendly message is now printed instead. * (PDB-577) Lower KahaDB MessageDatabase logging threshold. Previously, premature termination of PuppetDB import under specific ownership conditions led to a residual KahaDB lock file that could prevent subsequent imports from running with no obvious reason why. This patch lowers the log threshold for KahaDB MessageDataBase so affected users are informed. * (PDB-686) Add warning about PDB-686 to release notes This adds a warning about PDB-686 to the release notes so users know how to work-around it. This also cleans up the linking in our current release notes, and removes the warning about Puppet 3.4.x, because we pin against 3.5.1 and greater anyway. * Add sbin_dir logic to Rakefile for Arch linux * (PDB-467) Merge versioning tests for http testing into non-versioned files This patch removes all remaining versioned http test files into shared unversioned files, so that we may start iterating across versions in the same file. * Fix comparison in dup resources acceptance test Due to changes in Puppet 3.6.0, the comparison done in our resource duplication tests no longer matches the actual output. This patch ammends the comparison to match Puppet 3.6.0 output now. * (PDB-597) Add trusty build default This includes trusty (Ubuntu 14.04) in our builds. * Unpin the version of beaker We had pinned beaker previously because we were waiting for some of our new EC2 customisations to be merged in and released. This has been done now. * Fix a race condition in the import/export round-trip clojure tests This scenario occurred if command processing for facts is slow. A result with the hard coded certname would be returned with no fact values or environment. This commit fixes the code to only return results when facts are found. * (PDB-309) Update config conversion code for Schema 0.2.1 Much of the code for converting user provided config to the internal types (i.e. "10" to Joda time 10 Seconds etc) is no longer necessary with the new coerce features of Schema. This commit switches to the new version and makes the necessary changes to use the coerce feature. PuppetDB 2.1.0 Contributors --------------------------- Chris Price, Eric Timmerman, Ken Barber, Melissa Stone, Niels Abspoel, Ryan Senior, Wyatt Alt PuppetDB 2.1.0 Changlog ----------------------- Chris Price (7): c7628d2 Allow web app URL prefix to be configured 0b38aac Support for configurable URL in terminus f584224 (PDB-651) Fix dashboard to be compatible with url prefix 23e0e26 Add deprecation warning to docs for `explicit` metric type strings a69bf71 (PDB-651) Add docs for url-prefix setting a60b843 Update `with-http-app` fixture to include default for url-prefix 94ebe0a (PDB-651) Fix spec failure on ruby 1.8.7 Eric Timmerman (2): c619cec (RE-1497) Remove quantal from build_defaults 17af083 (RE-1497) Remove quantal from build_defaults Ken Barber (24): f81ac21 Update release notes with more upgrade warnings 93817db (PDB-16) Fix terminus to always submit reports and include the status 650bc7e (PDB-16) Include warning when environment doesn't exist in report 4ed1e81 Fix reference to PuppetDB 1.6.x in index.markdown 871086b (PDB-551) Include a versioning policy 3bde8ac (PDB-551) Some minor cleanups to the versioning policy 530ac79 (PDB-551) Reduce wording based on feedback 98e8315 Unpin the version of beaker 0f44e0c (PDB-597) Add trusty build default 3623e45 Fix comparison in dup resources acceptance test 3f9b81c (PDB-467) Collapse versioned files for http tests adb4fcd (PDB-467) Create deftestseq and implement it everywhere 61764ae (PDB-686) Add warning about PDB-686 to release notes 388d0c6 Typo in v4/reports.markdown edbef54 (PDB-467) Convert endpoints to vecs of vecs 0957425 (PDB-660) Enable event streaming and provide other streaming cleanups ee011c5 (PDB-660) Throw deprecation warning for 'event-query-limit' and fix a docstring 5e2449b (PDB-660) Turn on streaming for nodes end-point c9df21c (PDB-660) Environments end-point streaming ab02b8e (PDB-660) Provide better validation for query params on environments & singleton end-points 271dc51 (PDB-660) Report end-point streaming fcd629e (PDB-660) Remove extraneous parens 9f5967b (PDB-660) Event-counts streaming 03767ad (PDB-660) Final refactor for streaming Melissa Stone (3): 466e4cd (PDB-675) Stop pdb process even if pidfile missing a6e5a21 (maint) Restrict which process will be stopped c90e765 (maint) Add log entry for when process stopped without PIDfile Niels Abspoel (1): 1e021db sbin_dir logic to Rakefile Ryan Senior (17): 5d8d204 (PDB-309) Update config conversion code for Schema 0.2.1 128934c Fix a race condition in the import/export round-trip clojure tests 890f31e (PDB-16) Added status to "store report" and report query results 0af169f (PDB-657) Query logic refactor 910e48c (PDB-658) Move reports endpoint over to the new query engine df7eb02 (PDB-658) Move facts endpoint to new query engine 85d50b9 (PDB-658) Moving events querying to the new query engine ee55859 (PDB-658) Moved event-counts endpoints to the query engine b4667cf (PDB-658) Move environments endpoint to the query engine a7a3ac2 (PDB-697) Test and document new reports features 0feb553 (PDB-697) Added docs/tests for new queryable nodes fields and operators 6455bec (PDB-660) Fix testing for not(regexp) match case 96d5af9 (PDB-697) Document and test new events and resources features a235006 (PDB-162) Add regexp support to resource parameter queries 66ccddd7 (PDB-720) Fix services test with hard coded Jetty port 48e1eb5 (PDB-728) Update release notes for 2.1.0 b82f58f (PDB-729) Updated documentation indexes for PuppetDB 2.1 wkalt (8): b9e3459 (PDB-700) Allow changes to maxFrameSize in activemq 598444f (PDB-577) Lower KahaDB MessageDatabase logging threshold. c964d91 (PDB-130) Fixes a nasty traceback exposed when users run import from command line with an invalid filename. A friendly message is now printed instead. 7fb9418 (PDB-337) Remove extraneous _timestamp fact 0454e09 (PDB-220) Coerce numerical function output in manifests to string aefc579 (PDB-240) Replace anonymize.clj read-string with clojure.edn/read-string ab71ba2 (PDB-164) Add documentation for select-nodes subquery operator 1a90ff7 (PDB-601) Do not require query operator on reports endpoint -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAE4bNTmrF6au3T0yDtQjq%2B%3DiH5ogUBmu%2BxXKXoZTw1cmqfzkjA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.