{##ensure that database pillar exists##}
{%- if pillar['database'] is defined -%}
  {% if pillar['database']['databases'] is defined -%}
    {%- for db in pillar['database']['databases'] %}
#destroy and create fresh db
absent_{{db}}:
  mysql_database.absent:
    - name: {{db}}
    - connection_user: salt
    - connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
present_{{db}}:
  mysql_database.present:
    - name: {{db}}
    - connection_user: salt
    - connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"

#create temp user w/ perms for db
{%- set pass=range(0,999999999)|random -%}
user_temp_{{db}}:
  mysql_user.present:
    - name: temp
    - host: "localhost"
    - password: "{{pass}}"
    - connection_user: salt
    - connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
grant_temp_{{db}}:
  mysql_grants.present:
    - grant: all privileges
    - database: "{{db}}.*"
    - user: temp
    - host: "localhost"
    - revoke_first: true
    - connection_user: salt
    - connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
#restore db
restore_{{db}}:
  cmd.run:
    - name: "mysql -utemp -p{{pass}} < /dbdump/{{db}}.sql"
#remove temp user
rm_user_temp_{{db}}:
  mysql_user.absent:
    - name: temp
    - host: "localhost"
    - connection_user: salt
    - connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
    {%- endfor %}
  {%- endif %}
{%- endif %}