Collect logging information into ara callback

As we start to work on getting devstack-gate running in zuulv3, we have
an execution context shift issue looming. That is, in current
devstack-gate, there is a shell script that runs on the remote node that
then, for some tasks, runs ansible.

In v3, we want ALL of that to be ansible run by the executor. However,
we'll lose our current ara reports in devstack-gate if we shift all the
ansible to the executor before we add ara support to zuul.

This will result in ara collecting log information into a sqlite
database in self.jobdir.work_root. We can then, as we choose, write a
post-playbook task to do 'ara generate html' as we do in devstack-gate
today.

It's implemented in a try/except block so that it's a deployer choice to
install ara or not. Later we can extract that into a plugin interface.
ara was put into the test-requirements.txt though so that for unittests
we can at least catch cases where something about ara might break
ansible-playbook from being able to execute.

Change-Id: I8facdf0b95b83d43c337058d70fe6bf71e17d570
1 file changed