** Final Release **

PuppetDB 2.0.0 final - May 6, 2014.

PuppetDB 2.0.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

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.0.0:
https://tickets.puppetlabs.com/browse/PDB

Documentation: http://docs.puppetlabs.com/puppetdb/2.0

Puppet module:
http://forge.puppetlabs.com/puppetlabs/puppetdb

PuppetDB 2.0.0 Release Notes
--------------------------------

PuppetDB 2.0.0 is a major release focusing on environments support.
Note that *this is a major version bump* and there are several
breaking changes, including dropping support for versions of
PostgreSQL prior to version 8.4 and Java 1.6. See the "Deprecations
and potentially breaking changes" section below for more information.

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 being tracked here:
https://tickets.puppetlabs.com/browse/PUP-1524. This is being fixed in
an upcoming release of Puppet. Since 1.6.0 this error will become more
obvious as we are now raising full stack traces, so you may notice it
more readily after the upgrade.

* 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-452,453,454,456,457,526,557) Adding support for storing,
querying and importing/exporting environments

  This change forced a new revision of the `replace facts`,
  `replace catalog` and `store report` commands. The PuppetDB terminus
  also needed to be updated to support new environment information
  being sent to PuppetDB. USERS MUST ALSO UPDATE THE PUPPETDB
  TERMINUS. Previous versions of those commands (and wire formats) are
  now deprecated. See the PuppetDB API docs for more information.
  Environments support has been added to the new v4 (currently
  experimental) query API. The following query endpoints now include
  environment in the response:

  - facts
  - resources
  - nodes
  - catalogs
  - reports
  - events
  - event counts
  - aggregate event counts

  The below query endpoints now allow query/filtering by environment:

  - facts
  - resources
  - nodes
  - catalogs
  - reports
  - events

  This release also includes a new environments query endpoint to list
  all known environments and allow an easy filtering based on
  environment for things like events, facts reports and resources. See
  the query API docs for more information. PuppetDB
  import/export/anonymization and benchmark tools also now have
  environment support. Storeconfigs export does not include
  environments as that information is not being stored in the old
  storeconfigs module. Environments that are no longer associated with
  a fact set, report or catalog will be "garbage collected" by being
  removed from the database.

* (PDB-581) Add subqueries to events query endpoint

  The events endpoint now supports select-resources and select-facts

* (PDB-234) Add v4 query API, deprecate v2 query API

  This patch adds the new code relevant for doing any future v4 work.
It has been
  raised as an experimental end-point only so there are no commitments to its
  interface yet. Once stable we will need another patch to declare it as so.

  This patch also deprecates the v2 end-point in documentation and by adding the
  same headers we used to use for the v1 end-point.

* (PDB-470) Provide new db setting 'statements-cache-size' with a
default of 1000

  This setting adjusts how many SQL prepared statements get cached via BoneCP.

  By using this setting we've seen an almost 40% decrease in wall clock time it
  takes to store a new catalog.

  This patch adds the new configuration item as a user configurable one, with a
  default set to 1000 for now. Documentation has also been added for this
  setting.

* (PDB-221) Add facts to import/export

  This commit imports/exports facts similar to how we currently import/export
  catalogs and reports. Anonymize doesn't currently work for facts, which is
  going to be added separately.

* (PDB-469) - Support Anonymizing Facts

  This commit adds support for the anonymization of facts. The levels of
  anonymization supported are:

  - none - no anonymization
  - low - only values with a fact name of secret, password etc
  - moderate - recognized "safe" facts are untouched, recognized
                facts with sensitive information (i.e. ipaddress)
                have their values anonymized
  - full - all fact names and values are anonymized


Deprecations and potentially breaking changes:

* (PDB-88, PDB-271) JDK 1.6 no longer supported

* (PDB-308) Drop 2.7.x support

  This patch removes support for Puppet 2.7.x in several ways:

  * New check for every entry point in terminus will return an error if the
    version of Puppet is not supported. This is done in a 'soft' manner to
    avoid Puppet from not working.
  * Documentation now only references Puppet 3
  * Documentation now states only latest version of Puppet is supported
  * Packaging now has hard dependencies on the latest version of Puppet
  * Contrib gemspec has been updated
  * Gemfile for tests have been updated

* (PDB-552) Pin support for Puppet to 3.5.1 and above

  Starting PuppetDB with a Puppet earlier than 3.5.1 will now fail on startup.

* (PDB-605) Pin facter requirement to 1.7.0

  Using prior versions of Facter will cause PuppetDB to fail on startup

* (PDB-592) Removing support for Ubuntu Raring

  Raring went EOL in Jan 2014, so we are no longer building packages for it.

* (PDB-79) Drop support for Postgres < 8.4

  PuppetDB will now log an error and exit if it connects to an
instance of Postgres
  older than 8.4. Users of older versions will need to upgrade (especially EL 5
  users as it defaults to 8.1).  The acceptance tests for EL 5 have been updated
  to be explicit about using Postgres 8.4 packages instead.

* (PDB-204) Ensure all commands no longer need a serialized payload

  Some previous commands required the payload of the command to be
  JSON serialized strings as opposed to the relevant JSON type
  directly in the payload. All commands no longer require the payload
  to be serialized to a string first.

* (PDB-238) - Remove v1 API

  This commit removes the v1 API and builds on the HTTP api refactor.
  This commit contains:

  - Remove all v1 namespaces and the namespaces calling them
  - Remove api tests excercising the v1 routes
  - Remove v1 references in the docs

* (PDB-354) Deprecate old versions of commands

  This patch drops a warning whenever an old version of the commands API is used
  and updates the documentation to warn the user these old commands are
  deprecated.

* (PDB-570) Remove planetarium endpoint

  Old endpoint that had significant overlap with the current catalogs endpoint

* (PDB-113) Remove swank

  As swank is now a deprecated project. This patch removes swank support
  completely from the code base.


Notable improvements and fixes:

* (PDB-473) Support POST using application/json data in the body

  This patch adds to the commands end-point the ability to simply POST using
  application/json with the JSON content in the body.

  It also switches the terminus to use this mechanism.

  We found that the url encode/decode required to support x-www-form-urlencoded
  was actually quite an overhead in a number of ways:

  * The urlencode on the terminus added overhead
  * The urldecode in the server added overhead
  * The interim strings created during this encode/decode process can get quite
    large increasing the amount of garbage collection required

  This feature has been implemented by providing a new middleware that will move
  the body into the parameter :body-string of the request when the content-type
  is not set to application/x-www-form-urlencoded. This provides a convenient
  backwards compatible layer so that the old form url encoding can still be
  supported for older versions of the API.

* (PDB-567,191) Use hash not config_version for report export files

  This fixes a bug related to config_versions containing characts not
  safe to be use in file names (such as '/').

* (PDB-518) Fix bug storeconfig export of arrays

  For exported Resources with parameters which value is a Array the
  storeconfig export fails to collect them. Instead of collecting all
  the parameter values into a array it simply override the value with
  each value in turn.

* (PDB-228) Use JSON in terminus instead of PSON

  The PuppetDB API specifies that it is JSON, so we should parse it as
  that and not as PSON.

  Some Puppet classes (Puppet::Node and Puppet::Node::Facts) don't
  support JSON serialization, so continue to use PSON serialization
  for them. In Puppet 3.4.0+ they have methods to do seralization in
  other formats than PSON though, so once support for older versions
  of Puppet is dropped they can be seralized in JSON as well.

* (PDB-476) Decorate the terminus code with Puppet profiling blocks

  This patch adds some select profiling blocks to the PuppetDB terminus code.

  The profiler is provided by puppet core from Puppet::Util::Puppetdb#profile,
  which has recently become public for our use. We provide here in our own utils
  library our own wrapper implementation that can be mixed in.

  Key areas of our terminus functionality have now been profiled with this
  patch:

  * Entry points are profiled and identified by their entry methods (save, find,
    search etc.)
  * Remote calls, HTTP gets/posts
  * Code that does any form of encoding/decoding that might be potentially slow
    at capacity.

  The style of messages I've used follow along with the existing
Puppet profiling
  examples already in place so as to be readable together. We have prefixed our
  profile message with "PuppetDB" for easy searchability also.

  I have provided a small FAQ entry that explains in brief the process of
  debugging, although we lack something to link to in Puppet for a more detailed
  explanation. This will probably need to be fixed if better documentation comes
  available.

* (PDB-472) - Annotate MQ messages without parsing payload

  Received time and a UUID are currently added to incoming (via HTTP) messages
  before placing them on the queue. This commit adds those annotations to the
  MQ message header no longer requires parsing the incoming message payload
  before placing it on the queue.

* (PDB-87) Port PuppetDB to TrapperKeeper

  TrapperKeeper is a new container that PuppetDB will be deployed in.
  This is mainly a refactoring of existing code and error handling to
  use the centralized TrapperKeeper service. More information on
  TrapperKeeper can be found here:
  http://puppetlabs.com/blog/new-era-application-services-puppet-labs.

* (PDB-401) Upgrade to TrapperKeeper 0.3.4

  This commit updates PuppetDB to use the new trapperkeeper 0.3.4
  API.  This includes:

  * Slightly modified syntax for defining services and service
    lifecycle behavior
  * Switch from log4j to logback, update documentation and packaging
    accordingly
  * Switch from jetty7 to jetty9
  * Add example of how to use "reloaded" interactive development pattern
    in REPL
  * Upgrade to kitchensink 0.5.3, with bouncycastle fix for improved
    HTTPS performance

* (PDB-529) Added latest-report? example to the events docs

* (PDB-512) Upgrade to Clojure 1.6.0

* (PDB-521) Switch to using /dev/urandom (using java.security.egd)

* (PDB-564) Added OpenBSD-specific variables to puppetdb.env

  Adding OpenBSD specific variables allows the OpenBSD package
  maintained downstream in the OpenBSD ports tree to be greatly
  simplified.

* (PDB-177) Replace ssl-host default with 0.0.0.0

  By trying to use a hostname, the amount of issues people suffer with during
  setup times related to hostname resolution is quite high. This patch
  replaces the hostname with 0.0.0.0 which by default listens on all
  interfaces.

* (PDB-402) Remove ahead-of-time compilation

  This patch removes AOT compilation from our leiningen project and updates
  all relevant shell scripts to use the non-AOT methodology for invoking
  clojure projects.

* (PDB-576) Update beaker tests to use host.hostname instead of host.name

* (PDB-481) Added Arch Linux build/install support

* (PDB-572) New community packages of puppet install in vendorlibdir

* (PDB-575) Updated install from source docs

* (PDB-254)  Change benchmark to mutate catalog resources and edges
send a defined number of messages

  Previously benchmark.clj when it would mutate a catalog would only
  add a single resource.  This change will add a new resource or
  mutate a random existing resource.  It will also add a new or
  change an existing edge.  One of these four mutations is picked
  at random.  This commit also adds a new parameter to benchmark.clj
  to allow the syncronous sending of a specified number of commands
  (per host) via the -N argument

* (PDB-591) Allow gem source to come from env vars

* (PDB-595) Added docs for the load testing and benchmarking tool

  Mostly a developer tool, but documented how to use it in case it's
  useful to others. See "Load Testing" in the Usage / Admin section of
  the docs site

* (PDB-602) Updated acceptance tests to use a proper release of leiningen

* (DOCUMENT-6) Update config page for PuppetDB module's improved
settings behavior


PuppetDB 2.0.0 Contributors
---------------------------
Alice Nodelman, Aric Gardner, Chris Price, Daniele Sluijters, Deepak
Giridharagopal, Erik Dalén, Jasper Lievisse Adriaanse, Ken Barber,
Marius Rieder, Matthaus Owens, Melissa Stone, Nate Wolfe, Nick
Fagerlund, Niels Abspoel, Riley Shott, Ryan Senior

PuppetDB 2.0.0 Changlog
-----------------------

Alice Nodelman (1):
      974a19e (maint) have beaker tests use the host.hostname instead
of host.name

Aric Gardner (3):
      d4a3773 added example for latest-report?
      e549822 flubbed the initial operator.
      6325e42 removed a space

Chris Price (15):
      97755c5 Port PuppetDB to run on trapperkeeper
      703699b Introduce `error-shutdown!` function for handling fatal errors
      324d67a Add environment variable to allow SNAPSHOT dependencies
      cac398c Update to released versions of deps, use new cli exceptions
      e92f9ab Add clarifying comments to `bootstrap.cfg`
      a62b6dd Remove SNAPSHOT dependency from test profile
      6d50bbf Change trapperkeeper docs link to point to head of 0.1.x branch
      f2bfd00 Remove unused Jetty configuration
      088da45 Remove unused dependency on ring-jetty-adapter
      198129d Fix tk version string and test deps
      1fadc84 Fix acceptance test race condition related to stop_puppetdb
      61c9b2a Port to trapperkeeper 0.3.4
      bf6b089 Add back in the placeholder log4j.properties.erb
      3fe1191 Add `modify_config_setting` helper method for acceptance
      c15ba49 Update CLI tools to use new form of specs for args

Daniele Sluijters (1):
      b38ea55 PDB-521: Switch to using /dev/urandom

Deepak Giridharagopal (4):
      59fa50a Fixes for Clojure 1.6 compatibility
      228d854 (PDB-512) Update to Clojure 1.6.0-RC1
      50309b6 Add jdk8 tests to travis-ci
      29d0007 Allow gem source to come from env vars

Erik Dalén (3):
      660522f (#23422) Use JSON in terminus instead of PSON
      e3f3fbe (PDB-581) Add subqueries to events query endpoint
      abb8f2f Fix command API Content-Type

Jasper Lievisse Adriaanse (1):
      20efae8 [PDB-564] Add OpenBSD-specific variables to puppetdb.env

Ken Barber (51):
      9da1078 PDB-177 Replace ssl-host default with 0.0.0.0
      ef96659 PDB-177 Remove superflous fqdn lookups
      b4b85ee Fix merge up mistake
      f96946d PDB-234 Add v4, deprecate v2 query API
      40c42e3 PDB-308 Drop 2.7.x support
      424d104 PDB-308 Fix missing files from packaging
      4acafb0 Fix puppetdb-env.erb so we don't get stripped carriage returns
      9e6beab PDB-354 Deprecate old versions of commands
      1b42c1d PDB-113 Remove swank
      08d849a PDB-402 Remove ahead-of-time compilation
      bfc45a0 PDB-476 Decorate the terminus code with Puppet profiling blocks
      295edd7 PDB-470 Provide new db setting 'statements-cache-size'
with a default of 1000
      15d68d8 PDB-473 Support POST using application/json data in the body
      c789867 PDB-473 Add a content-type verification middleware
      0b604cf PDB-473 Additional tests for verify-content-type and
other cleanups
      ef2ea91 PDB-473 Convert submit-command-via-http! to use
application/json POST
      1185307 PDB-473 Use (seq foo) on its own
      9dd010b PDB-473 Adapt for new queue message format
      4aaf0a2 Use Clojure 1.6.0-rc3
      e03b4f0 Clojure 1.6.0-RC4
      e5c3f72 Clojure 1.6.0 final
      0685e8b PDB-453 Add environments to all terminii
      619600e PDB-453 Normalize request.environment with to_s to avoid
'stack level too deep'
      fa79af6 PDB-554 Switch to using new experimental ec2 beaker driver
      63360a0 PDB-554 Remove temp refspec entry
      856edea (PDB-526) Garbage collect unreferenced environments
      f578757 (PDB-581) Add tests and minor cleanups for event subqueries
      89ba090 (PDB-552) Pin support for Puppet to 3.5.1 and above
      5c0d6f6 Use ActiveRecord 3.2.x instead of 2.3.x
      6c9ad0d Use rubygem-sqlite3 for fedora 19/20
      e34a661 Run storeconfig tests regardless
      5be8845 Fix Fedora case statement and install sqlite3 from gem
      4b98fea (PDB-594) Ensure libsqlite3-dev is installed
      52df5c8 (PDB-594) Install builder to help with Ubuntu 10.04
rubygems failure to follow dependencies
      5ea8b27 (PDB-594) Manually install i18n for the sake of Ubuntu
10.04 old rubygems
      1619cde (PDB-594) Confine legacy import/export scripts to avoid
Ubuntu 10.04
      d4cf33d (PDB-567 & PDB-191) Use hash not config_version for
report export files
      4821eeb (PDB-465) Remove Ubuntu 14.04 trust support for master
      c334ef4 (PDB-555) Environments for /nodes & hyphenation consistency fixes
      42be0b4 (PDB-204) Ensure all commands no longer need a serialized payload
      05da2c4 (PDB-204) Fix terminus unit tests to avoid seralization
for facts/deactivate
      0abbd53 (PDB-204) Fix submit command for terminus so it returns
the commands response
      2daf865 (PDB-555) Rename *-last-environment to -environment
      4c794b4 (PDB-204) Simplify variable destructuring and other minor cleanups
      c1743e8 (PDB-605) Prepare all documentation headers for 2.0 release
      e55b34b (PDB-605) Revert some 1.6->2.0 changes
      66d97b0 (PDB-605) Pin facter requirement to 1.7.0
      ef8a2ca Fix environment end-point links to be compatible with
our docs site
      a9a29b0 Wrap API examples in back-ticks to make the hyperlinks work
      ded3e1e Fix example query to be JSON, not clojure
      5ea3901 Correct hyperlink to anchor syntax in FAQ

Marius Rieder (1):
      6952ac0 fix storeconfig export for array values

Matthaus Owens (1):
      5d3e90b (PDB-592) Raring went EOL in Jan 2014, so we should no
longer build packages for it.

Melissa Stone (1):
      3f34e3c (PDB-465) Add ubuntu-14.04, trusty tahr

Nate Wolfe (3):
      0ea1949 Properly handle cli! errors
      30bca1d Properly handle cli! --help
      8720ff7 Hit actual endpoint to see if PuppetDB started

Nick Fagerlund (1):
      ea700fd (DOCUMENT-6) Update config page for PuppetDB module's
improved settings behavior

Niels Abspoel (2):
      35fcfed Aded Archlinux build/install support
      5d9a2dc new community packages of puppet install in vendorlibdir

Riley Shott (2):
      e16e308 Updated install from source commands
      88ec143 Fixed typo.

Ryan Senior (45):
      7818a59 (PDB-254) Change benchmark to mutate catalog resources
and edges send a defined number of messages
      504431d Fixed report submission part of benchmark to change the
start/end time and config version
      455b4fa (PDB-79) Drop support for Postgres < 8.4
      3236907 Added Postgres 8.4 declaration to the acceptance test
PuppetDB package installation code
      48e8fa1 Split metrics/version/command out of api.clj and into
their own namespaces
      c01a774 (PDB-238) - Remove v1 API
      a6f42af (PDB-271) Update docs to reflect removal of JDK 1.6 support
      d88e89b (PDB-88) Fail on JDK version 1.6
      173b9b2 Remove the option of a JDK 1.6 RPM dependency
      a850666 Bump the redhat JDK dep for acceptance tests to 1.7.0
      4e7ad25 (PDB-221) Add facts to import/export
      4ed5aca Added support for exporting facts/reports when no
catalog has been persisted for the given node
      6c9e4d3 PDB-469 - Support Anonymizing Facts
      e1961d0 Tighten the fact-value anonymization for the moderate profile
      f567003 (PDB-472) - Annotate MQ messages without parsing payload
      fa8453f Fixed a date related issue causing tests to fail (only
at certain times of the day)
      2585409 (PDB-452) Adding support for storing environments
      fd6ed60 Minor doc changes
      60aea48 Removed unused command attribute "puppetdb-version"
      432dd02 (PDB-454) - Updating the catalogs endpoint to return environments
      b571324 Fix for the terminus to stringify version per spec,
added defensive conversion code in the back end.
      b2cdeb0 Changed to covert catalog version to a string for wire
formats v1-v3. Also a minor doc update for the terminus.
      1939ee3 (PDB-454) Added support for querying/returning
environments for resources and facts
      dd75f69 Changed v2/v3 resource/fact API calls to remove
environment from the response
      bf26afe Fixed issue with doseq over deftests in the events tests
      20959ad (PDB-454) - Added environment support for querying
reports, events, event-counts and aggregate-event-counts
      40e1d2d (PDB-574) 404 should be returned when querying for a
missing catalog
      6a30c4c (PDB-457) - Update import/export/anonymization for v4 API
      f9124ac Added tests around exporting storeconfigs with resources
containing arrays for param values.
      bab2401 Only pull in activerecord and sqlite3 on new versions of
Ruby (1.9.3). This will cause the storeconfigs spec tests to only run
on newer Rubies.
      2943316 Changed the storeconfig acceptance tests to verify
import by querying
      3ea8a68 (PDB-457) More storeconfig acceptance test fixes
      789802c (PDB-457) Storconfigs acceptance tests broken on Fedora
      e9cd65a (PDB-570) Remove planetarium endpoint
      93ef9d1 (PDB-595) Added docs for the load testing and benchmarking tool
      8ceed05 (PDB-589) Add indexes to environment foreign keys
      91257df Bump catalog/report wire format versions for the benchmark tool
      ea4e576 (PDB-456) Added environments endpoint and related query functions
      3b320d4 Added a ring middleware for creating a db transaction
and a fixture for diagnosing routes that don't create a connection
      dd3a64c Fixed inconsistencies in the deprecation warning
messages of commands
      9c58a5b DRY'd up the environments docs a bit
      f121f26 Updated acceptance tests to use a proper release of leiningen
      3ca240f (PDB-557) Add support for standard query operators and subqueries
      aa95bca Updated the release notes for the 2.0.0 release
      ff807b1 (PDB-626) Added some additional fixes/features to the
2.0.0 release notes

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CAE4bNTnHE7DuefmPSJjJp1to5%2Bz_e-p71V9X_EtRQyU0AzSFjQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to