---
- name: Checking that libvirt is not running
  stat: path=/var/run/libvirt/libvirt-sock
  register: result
  failed_when: result.stat.exists
  when: inventory_hostname in groups['compute']

- name: Checking Docker version
  command: docker version
  register: result
  failed_when: result | failed
               or (result.stdout | from_yaml).Server.Version | regex_replace('(\\d+\\.\\d+\\.\\d+).*', '\\1') | version_compare(docker_version_min, '<')

---
- name: Checking that libvirt is not running
  stat: path=/var/run/libvirt/libvirt-sock
  register: result
  failed_when: result.stat.exists
  when: inventory_hostname in groups['compute']

- name: Checking Docker version
  command: docker version
  register: result
  failed_when: result | failed
               or (result.stdout | from_yaml).Server.Version | regex_replace('(\\d+\\.\\d+\\.\\d+).*', '\\1') | version_compare(docker_version_min, '<')

- name: Checking if 'MountFlags' in /lib/systemd/system/docker.service is set to 'shared'
  command: cat /lib/systemd/system/docker.service
  register: result
  failed_when: result.stdout.find('MountFlags=shared') == -1
  when:
    - (inventory_hostname in groups['neutron-dhcp-agent']
       or inventory_hostname in groups['neutron-l3-agent']
       or inventory_hostname in groups['neutron-metadata-agent'])
    - ansible_os_family == 'RedHat'
       or (ansible_distribution == 'Ubuntu' and ansible_distribution_version > '14.04')

- name: Checking if '/run' mount flag is set to 'shared'
  command: awk '$5 == "/run" {print $7}' /proc/self/mountinfo
  register: result
  failed_when: result.stdout.find('shared') == -1
  when:
    - (inventory_hostname in groups['neutron-dhcp-agent']
       or inventory_hostname in groups['neutron-l3-agent']
       or inventory_hostname in groups['neutron-metadata-agent'])
    - ansible_distribution == 'Ubuntu' and ansible_distribution_version == '14.04'

Add a precheck for MountFlags=shared
Add a precheck for MountFlags=shared

In order to avoid the neutron-dhcp-agent container from
failing, you need to change 'MountFlags' to 'shared' in
/var/lib/systemd/system/docker.serivce.  Add a precheck
so that this issue will not happen as often.

Closes-bug: #1546681
Change-Id: I339b5e93e870534fe16c6610f299ca789e5ada62
