enforce database
diff --git a/galera/server.sls b/galera/server.sls
new file mode 100644
index 0000000..e50f0b6
--- /dev/null
+++ b/galera/server.sls
@@ -0,0 +1,82 @@
+{%- if pillar.get('mysql', {}).server is defined %}
+
+{%- set server = pillar.mysql.server %}
+
+{%- for database_name, database in server.get('database', {}).iteritems() %}
+
+mysql_database_{{ database_name }}:
+ mysql_database.present:
+ - name: {{ database_name }}
+ - require:
+ {% if cluster.enabled %}
+ - cmd: mysql_cluster_init
+ {% else %}
+ - service: mysql_service
+ {% endif %}
+
+{%- for user in database.users %}
+
+mysql_user_{{ user.name }}_{{ database_name }}_{{ user.host }}:
+ mysql_user.present:
+ - host: '{{ user.host }}'
+ - name: '{{ user.name }}'
+ - password: {{ user.password }}
+ - require:
+ {% if cluster.enabled %}
+ - cmd: mysql_cluster_init
+ {% else %}
+ - service: mysql_service
+ {% endif %}
+
+mysql_grants_{{ user.name }}_{{ database_name }}_{{ user.host }}:
+ mysql_grants.present:
+ - grant: {{ user.rights }}
+ - database: '{{ database_name }}.*'
+ - user: '{{ user.name }}'
+ - host: '{{ user.host }}'
+ - require:
+ - mysql_user: mysql_user_{{ user.name }}_{{ database_name }}_{{ user.host }}
+ - mysql_database: mysql_database_{{ database_name }}
+
+{%- endfor %}
+
+{%- if database.initial_data is defined %}
+
+/root/mysql/scripts/restore_{{ database_name }}.sh:
+ file.managed:
+ - source: salt://mysql/conf/restore.sh
+ - mode: 770
+ - template: jinja
+ - defaults:
+ database_name: {{ database_name }}
+ - require:
+ - file: mysql_dirs
+ - mysql_database: mysql_database_{{ database_name }}
+
+restore_mysql_database_{{ database_name }}:
+ cmd.run:
+ - name: /root/mysql/scripts/restore_{{ database_name }}.sh
+ - unless: "[ -f /root/mysql/flags/{{ database_name }}-installed ]"
+ - cwd: /root
+ - require:
+ - file: /root/mysql/scripts/restore_{{ database_name }}.sh
+
+{%- endif %}
+
+{%- endfor %}
+
+{%- for user in server.get('users', []) %}
+
+mysql_user_{{ user.name }}_{{ user.host }}:
+ mysql_user.present:
+ - host: '{{ user.host }}'
+ - name: '{{ user.name }}'
+ {%- if user.password is defined %}
+ - password: {{ user.password }}
+ {%- else %}
+ - allow_passwordless: True
+ {%- endif %}
+
+{%- endfor %}
+
+{%- endif %}
\ No newline at end of file