bbc0d767bb
Most of the playbooks executed by Mistral gather facts which, by default, are stored in memory until the conclusion of the playbook execution. This means that for every new playbook run the facts for each host are gathered again. Fact gathering can take a long time, especially when the target host has a lot of devices, which is often the case for compute hosts (many network devices and many storage devices) and for controller hosts (many network devices). To optimise fact gathering, we set the default behaviour for Mistral's Ansible execution to store gathered facts using the jsonfile format in a temporary location, and we tell it to use smart gathering so that it will only gather new facts when a new playbook executes. The validations are run using the 'validations' user, it cannot share the same fact cache because the /var/tmp/ansible_fact_cache folder will be owned by the 'mistral' user, and is therefore not writable by the 'validations' user. We therefore set the validations to use a different path. This should cut down the deployment time a bit, which saves a little time in CI and saves a lot of time in production environments. Related: rhbz#1749406 Change-Id: Ie7adf41cef0fafde646f840b2bf3e01ba42a17d5