enforce database
diff --git a/galera/files/sensu.conf b/galera/files/sensu.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/galera/files/sensu.conf
diff --git a/galera/init.sls b/galera/init.sls
index e5cf861..94e1414 100644
--- a/galera/init.sls
+++ b/galera/init.sls
@@ -7,4 +7,12 @@
 {%- if pillar.galera.slave is defined %}
 - galera.slave
 {%- endif %}
+{%- if pillar.galera.monitor is defined %}
+- galera.monitor
+{%- endif %}
+{%- endif %}
+{%- if pillar.mysql is defined %}
+{%- if pillar.mysql.server is defined %}
+- galera.server
+{%- endif %}
 {%- endif %}
diff --git a/galera/master.sls b/galera/master.sls
index 92772b7..a732841 100644
--- a/galera/master.sls
+++ b/galera/master.sls
@@ -21,7 +21,7 @@
   - require: 
     - pkg: galera_packages
 
-{%- if not salt['cmd.run']('test -e /root/.galera_bootstrap') %}
+{%- if salt['cmd.run']('test -e /root/.galera_bootstrap; echo $?') != '0'  %}
 
 galera_bootstrap_temp_config:
   file.managed:
diff --git a/galera/monitor.sls b/galera/monitor.sls
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/galera/monitor.sls
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