misc/bcfg2.spec:  reconcile w/Fedora:  re-enable unit tests in EL7

EL7 deps needed for unit tests (pylibacl, python-pep8, pylint) now
built for EPEL7.

https://bugzilla.redhat.com/show_bug.cgi?id=1058427
Revert "Systemd: systemd is a replacement for chkconfig"

This reverts commit 690a18b5bb61516e5c11f6da3d788332373c196b.

While systemd is meant to replace chkconfig, it appears that RHEL7 has
both and does not provide systemd alternatives for certain SYSV init
scripts by default.
Merge branch 'maint' of https://github.com/zultron/bcfg2 into maint
Correctly upgrade or downgrade yum packages

Formerly, yum did an 'update' to install the correct version of a
package, even if the desired package was older than the installed
package.  This is wrong; it needs to do a downgrade.  This changes it
to downgrade when the desired package is older, and upgrade if it is
newer.

There is still the possibility of upgrading a package that should be
downgraded if the desired package is only partially specified, but
this should be very rare.
Reporting: Log to debug to prevent spam in logs

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Enable bcfg2-yum-helper to depsolve for arches incompatible with server

By default, the yum dependency resolver uses the host's architecture
to filter compatible packages.  This prevents dependency resolution
when the bcfg2 client's architecture is incompatible with the
server's.

This workaround checks the <Arch/> element for each of the client's yum
sources, and if they are all identical, passes that architecture to
bcfg2-yum-helper to override the default.

The rpmUtils.arch module may only be configured for a single
architecture.  If multiple architectures are configured in yum
sources, we don't know which one to pick, so use the default behavior
instead.
Merge pull request #164 from zultron/maint

Enable bcfg2-yum-helper to depsolve for arches incompatible with server
misc/bcfg2.spec Remove duplicate checks for systemd in RPM scriptlets

In the RPM scriptlets, there's first a check for fedora 18 or greater,
then if that's not true, a check for fedora 16 or greater.  Due to
some bug in how nested %if statements work in RPM scriptlets, the
second test is evaluating true even on non-Fedora systems, which is
leading to systemd commands being put in RHEL6 RPM scriptlets.

This change removes the second check.  If there needed to be a check
for versions of Fedora 16 and 17, they will no longer work, but since
neither of those are supported versions of Fedora, I suspect we don't
need to include logic for them.
misc/bcfg2.spec: Remove second, unnecessary %endif
misc/bcfg2.spec: Bumped release and added a changelog entry
reduce logging from failed decryption with decrypt=lax
do not bruteforce Properties decrypts with unknown passphrase

this greatly decreases startup time with lots of data encrypted with
missing passphrases
Default to only (En|De)crypt vars that need it

For both Encrypting and Decrypting of Properties
files, we should by default only attempt to execute
on elements that have an "encrypted" attribute defined.

The code will already attempt to encrypt every element
if nothing in the current document matches this xpath,
which catches the case of a user trying to fully
encrypt a completely new properties file.

Conflicts:
	src/lib/Bcfg2/Server/Encryption.py
fixed pylint/pep-8 tests
testsuite: more unit test fixes
catch errors base64 decoding encrypted properties data
XMLFileBacked: Watch XIncluded files that do not exist

This makes a best effort to watch XIncluded files that do not exist.
Assume that you have XIncluded ``foo.xml``, the following (currently)
fails:

    mv foo.xml /tmp
    mv /tmp/foo.xml .

Bcfg2 processes the deletion event, and stops watching ``foo.xml``;
consequently, it receives no creation event when you put ``foo.xml``
back.

This does not fix the situation where you add a new file that is
matched by a wildcard XInclude, which turns out to be much more
difficult, and will likely require a significant restructuring of how
wildcard XIncludes are processed.  (I.e., we'll need to place a
monitor on the directory or directories where the wildcard XInclude is
looking, and then filter events according to the wildcard.)
Metadata: Reread clients.xml/groups.xml more carefully

Avoid building client metadata while rereading those files, and expire
the metadata cache afterwards.
Init: Remove stray whitespace

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
GroupLogic: parse generated template properly to allow xinclude