- name: Setup OS specific variable include
  include_vars: "{{ lookup('first_found', params) }}"
  vars:
    params:
      files:
        - "{{ ansible_distribution }}.{{ ansible_architecture }}.yaml"
        - "{{ ansible_distribution }}.yaml"
        - "{{ ansible_os_family }}.yaml"
      paths:
        - vars

- name: Increase udp buffer sizes
  copy:
    src: 99-afs-udp.conf
    dest: /etc/sysctl.d/99-afs-udp.conf
    owner: root
    group: root
    mode: '0644'
  become: yes

- name: Check config path defined
  fail:
    msg: "openafs_client_config_path not defined"
  when: not openafs_client_config_path

- name: Create configuration directory
  file:
    path: '{{ openafs_client_config_path }}'
    state: directory
  become: yes

- name: Install client base config files
  template:
    dest: '{{ openafs_client_config_path }}/{{ item }}'
    owner: root
    group: root
    mode: 0644
    src: '{{ item }}'
  loop:
    - afs.conf.client
    - CellServDB
  become: yes

- name: Install client templated config files
  template:
    dest: '{{ openafs_client_config_path }}/{{ item }}'
    owner: root
    group: root
    mode: 0644
    src: '{{ item }}.j2'
  loop:
    - cacheinfo
    - ThisCell
  become: yes

- name: Setup OS specific openafs-client environment
  include_tasks: "{{ lookup('first_found', params) }}"
  vars:
    params:
      files:
        - "{{ ansible_distribution }}.{{ ansible_architecture }}.yaml"
        - "{{ ansible_distribution }}.yaml"
        - "{{ ansible_os_family }}.yaml"
        - "default.yaml"
      paths:
        - openafs-client

- name: Ensure openafs-client service running
  service:
    name: openafs-client
    state: started
    enabled: yes
  become: yes