8461 - Improve support for compound_filters

Fix logic used in processing compound filters that were introduced
during a previous refactor.

Arrays of compound filters were expected but the option parser did
not send such an array.
8419 - Filters with invalid syntax do not fail, possible unintentional execution in environment.

We now raise exceptions when fact filter parsing fails, the -W helper
relied on it returning false.

This adds support for the new behavior to -W
8497 - Discovery agent needs normal meta data set

Updated discovery agent's meta data
7822 - MCollective should return a --version

Added Version to mco script and catching the SystemExit exception cleanly.

This works with the builtin --version handling in OptionParser to
support --version on the command line
8807 - printrpc should justify long text results better

Tweak the justification of multi line text results so it all
lines up nicely
8550 - Documentation out of date/misleading

Updated out of date documentation
8799 - RPC Validators should include boolean

DDL files can declare a input data item can be boolean which means
we would like to validate that on the agent side.

The validators had no boolean validation so this adds one.

Also do a small bit of test maintenance to avoid spurious failures
8703 - RPC::Agent#authorized_by loads auth plugins on each request

The authorized_by helper creates a method called authorization_hook and
loads up a class from disk that provides the implimentation as a plugin.

We used to only create 1 instance of a agent so this only happened once
but recently we started creating new instances of the agent on each
request which means this steps gets done many times.

This change avoids creating the hook if it's already defined thus avoiding
the undesired disk loads
7730 - Expose reload actions to EL init script

reload sends USR1 to reload agents.
reload-loglevel sends USR2 to cycle logging level.
7730 - Expose reload actions to EL init script

Update changelog
9133 - Update classesfile default location

The default classesfile location was set to a location that Puppet never
defaulted to.  It was missing the state part of the path, and the more
modern classesfile location in puppet also has lib in the path.  This is
now the default.
9133 - Update classesfile default location

Update changelog
8775 - Give version precision for registration_collective feature

Improve the documentation for the registration_collective configuration
by adding hints about what versions support this and how older ones behave
8325 - A default TTL should be supported

As messages are now possibly sent to queues and can hang around the
middleware for a very long time we need to support a TTL.  Nodes that
go off-line between discovery and request being sent may come back
a month later and find these old messages sitting there and then take
the actions which would not be desirable.

Requests will now get a default TTL of 60 seconds and during validation
of a message any messages older than this will not validate.

The various security plugins will accept a TTL when encoding the messages
and default to 60 if not given, similarly the Message object will default
to 60 TTL.

As a side effect security plugins now need a TTL when encoding requests
which means we now need to upgrade all security plugins in use when going
to a version running this version.

Future tickets will allow the TTL to be set per message.
8325 - A default TTL should be supported

Use UTC time for all calculations wrt TTL

Also logs some more details about messages that fail TTL validation
8325 - A default TTL should be supported

Make tests more robust by sending in a hash where one is expected
rather than an empty string which causes failures.
8466 - When identities are supplied , do not do discovery

Allow the Message object to be of type :direct_request which would force
direct requests

Change identity filters to be and and not or since that makes more sense
for identities.  But also if we're sending messages with many identities
attached we'd only want to match if ours is anywhere in the list, an
and based selection would always fail.

If identities are provided on the CLI then we use those and avoid discovery.

The RPC::Client#discover function can now be passed a list of hosts in
either string, array or JSON formats.  It will extract from this data
discovery data and use that instead of the old discovery methods.  In
this use case it will force direct_addressing mode.

The rpc application can now take JSON on STDIN and will use the above
capabilities to fill in discovery data
(#8045) Debian package build should produce source files

Previously the rake taks to build a Debian package would not contian the
source files.  Commit changes behvaior to build source files as well.

Patch from: Max Bowsher

Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>
(#8045) Remove ext/debian/changelog

The ext/debian/changelog file is quite outdated and gives the appearance
of a very old (outdated) package.  The rake task for the debian package
builds generates the changelog on the fly, so the file can be safely
removed.

Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>
9403 - Release 1.3.1

Release notes, changelog, rakefile etc for release 1.3.1