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