- name: Install postgresql package
  package:
    name: postgresql
    state: present
  tags:
    - download

- name: Install postgresql-client (debuntu)
  package:
    name: postgresql-client
    state: present
  when: is_debuntu
  tags:
    - download

- name: Install postgresql-server (OS's other than debuntu)
  package:
    name: postgresql-server
    state: present
  when: not is_debuntu
  tags:
    - download

- name: Install /etc/systemd/system/postgresql-iiab.service from template
  template:
    src: postgresql-iiab.service
    dest: /etc/systemd/system/postgresql-iiab.service
    owner: root
    group: root
    mode: 0644

- name: Create PostgreSQL data dir /library/pgsql-iiab, owned by postgres:postgres
  file:
    path: /library/pgsql-iiab
    owner: postgres
    group: postgres
    mode: 0700
    state: directory

- name: Make sure locale {{ postgresql_locale }} is enabled (debuntu)    # en_US.UTF-8
  lineinfile:
    dest: /etc/locale.gen
    line: "{{ postgresql_locale }} UTF-8"
  when: is_debuntu

- name: Generate locales (debuntu)
  command: /usr/sbin/locale-gen
  when: is_debuntu

- name: Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf (debuntu)
  #command: su - postgres -c "/usr/lib/postgresql/{{ postgresql_version }}/bin/initdb -E 'UTF-8' --locale={{ postgresql_locale }} -D /library/pgsql-iiab"
  command: /usr/lib/postgresql/{{ postgresql_version }}/bin/initdb -E 'UTF-8' --locale={{ postgresql_locale }} -D /library/pgsql-iiab
  args:
    creates: /library/pgsql-iiab/pg_hba.conf
  become: yes
  become_user: postgres
  when: is_debuntu

- name: Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf (OS's other than debuntu)
  #command: su - postgres -c "/usr/bin/initdb -E 'UTF-8' --lc-collate={{ postgresql_locale }} --lc-ctype={{ postgresql_locale }} -D /library/pgsql-iiab"
  command: /usr/bin/initdb -E 'UTF-8' --lc-collate={{ postgresql_locale }} --lc-ctype={{ postgresql_locale }} -D /library/pgsql-iiab
  args:
    creates: /library/pgsql-iiab/pg_hba.conf
  become: yes
  become_user: postgres
  when: not is_debuntu

- name: Install /library/pgsql-iiab/postgresql.conf owned by postgres:postgres, from template
  template:
    backup: yes
    src: postgresql.conf.j2
    dest: /library/pgsql-iiab/postgresql.conf
    owner: postgres
    group: postgres
    mode: 0640

# Probably Not Nec!  Given stanza below does the same.
- name: 'Stop postgresql service: /etc/init.d/postgresql stop (debuntu)'
  command: "/etc/init.d/postgresql stop"
  ignore_errors: True
  when: postgresql_install and is_debuntu

- name: Disable stock postgresql service
  systemd:
    name: postgresql
    state: stopped
    enabled: no

- name: Enable & Start postgresql-iiab systemd service, if postgresql_enabled
  systemd:
    name: postgresql-iiab
    state: started
    enabled: yes
  when: postgresql_enabled

- name: Disable postgresql-iiab service, if not postgresql_enabled
  systemd:
    name: postgresql-iiab
    state: stopped
    enabled: no
  when: not postgresql_enabled

- name: Add 'postgresql' variable values to {{ iiab_ini_file }}
  ini_file:
    path: "{{ iiab_ini_file }}"
    section: postgresql
    option: "{{ item.option }}"
    value: "{{ item.value }}"
  with_items:
    - option: name
      value: PostgreSQL
    - option: description
      value: '"PostgreSQL is a powerful, open source object-relational database system."'
    - option: installed
      value: "{{ postgresql_install }}"
    - option: enabled
      value: "{{ postgresql_enabled }}"
