testsuite: Added unit tests for new option parsing
testsuite: skip nested exclusive option group test on py2.6
Test failure to parse config file when bcfg2.conf exists
testsuite: capture stderr by default

This quiets down a lot of tests, especially for option parsing.
testsuite: Added unit tests for new option parsing
fixed some places where plugin loading should fail silently
call shutdown on subcommand registries
testsuite: better debug capturing for options tests
DBSettings: fix up <repository> in database name
Options: ensure <repository> macros are always fixed up

This fixes several cases in which <repository> macros would not be
properly processed: options that are not added to the parser yet when
early options are parsed; and config file options whose default value
is used.
testsuite: unlink temporary files

This cleans up the temporary config files created by the option
parsing unit tests. Courtesy Alexander Sulfrian.
Options: fix path canonicalization and file-like objects

This fixes canonicalizing PathOption values when the default value of
a config file-only option is used. It also fixes PathOptions that get
a file-like object instead of a filename string.
Server/Core: also shutdown on exceptions during fam blocking

Previously the server got stuck, if a keyboard interrupt occured during
block_for_fam_events. The KeyboardInterrupt exception was only handled
in the executable and it does not call shutdown for the Core. So the
running fam thread does not get killed and the main thread waits for it.
Options/Types: add abbility to set empty lists

We have some lists with default values, so someone maybe want to set an empty
list from the config. Previously this was not possible, because an empty string
results in a list with an empty string as element. This fixes this problem.
Options.py: Fix database OPTIONS parsing

Instead of parsing key/value pairs from bcfg2.conf, this allows the
setting of the literal value which is then passed through to django as
the value of the OPTIONS setting.

This change allows for setting arbitrary options since some settings
require nested dictionaries, etc.

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Client/Tools/APT: fix exception name
Client/Tools/APT: fix pylint errors, enable check

Previously pep8/pylint checks were disable for the APT tool because
there were to many errors. This fix the pylint errors and enables the
code style checks.
Merge branch 'fix-django-db-options-parsing' into maint
Options: gather as much data from config file first
Options: further command registry fixes

This updates the documentation for some of the recent changes to
subcommand handling, and ensures that the server core is shut down by
bcfg2-info.