diff --git a/README.rst b/README.rst index 476f11d..2eb3683 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,7 @@ Install the MySQL client and/or server Available states ---------------- -``mysql`` +``mysql.client`` Install the MySQL client package. ``mysql.server`` Install the MySQL server package and start the service. diff --git a/mysql/client.sls b/mysql/client.sls new file mode 100644 index 0000000..893e670 --- /dev/null +++ b/mysql/client.sls @@ -0,0 +1,6 @@ +{% from "salt/package-map.jinja" import pkgs with context %} + +mysql: + pkg: + - installed + - name: {{ pkgs['mysql-client'] }} diff --git a/mysql/init.sls b/mysql/init.sls deleted file mode 100644 index 715060a..0000000 --- a/mysql/init.sls +++ /dev/null @@ -1,9 +0,0 @@ -{% set pkg = salt['grains.filter_by']({ - 'Debian': {'name': 'mysql-client'}, - 'RedHat': {'name': 'mysql'}, -}) %} - -mysql: - pkg: - - installed - - name: {{ pkg.name }} diff --git a/mysql/package-map.jinja b/mysql/package-map.jinja new file mode 100644 index 0000000..763ca00 --- /dev/null +++ b/mysql/package-map.jinja @@ -0,0 +1,36 @@ +{% set package_table = { + 'Debian': {'mysql-server': 'mysql-server', + 'mysql-client': 'mysql-client'}, + 'Ubuntu': {'mysql-server': 'mysql-server', + 'mysql-client': 'mysql-client'}, + 'CentOS': {'mysql-server': 'mysql-server', + 'mysql-client': 'mysql'}, + 'Fedora': {'mysql-server': 'mysql-server', + 'mysql-client': 'mysql'}, + 'RedHat': {'mysql-server': 'mysql-server', + 'mysql-client': 'mysql'}, + 'Gentoo': {'mysql-server': 'dev-db/mysql', + 'mysql-client': 'dev-db/mysql'}, +} %} + +{% if 'package_table' in pillar %} + {% set pkgs = pillar['package_table'] %} +{% elif grains['os'] in package_table %} + {% set pkgs = package_table[grains['os']] %} +{% endif %} + + +{% set service_table = { + 'Debian': {'mysql': 'mysql'}, + 'Ubuntu': {'mysql': 'mysql'}, + 'CentOS': {'mysql': 'mysqld'}, + 'Fedora': {'mysql': 'mysqld'}, + 'RedHat': {'mysql': 'mysqld'}, + 'Gentoo': {'mysql': 'mysql'} +} %} + +{% if 'service_table' in pillar %} + {% set services = pillar['service_table'] %} +{% elif grains['os'] in service_table %} + {% set services = service_table[grains['os']] %} +{% endif %} diff --git a/mysql/server.sls b/mysql/server.sls index 10592e4..9341255 100644 --- a/mysql/server.sls +++ b/mysql/server.sls @@ -1,24 +1,12 @@ -include: - - mysql - -{% set pkg = salt['grains.filter_by']({ - 'Debian': { - 'name': 'mysql-server', - 'service': 'mysql', - }, - 'RedHat': { - 'name': 'mysql-server', - 'service': 'mysqld', - }, -}) %} +{% from "salt/package-map.jinja" import pkgs with context %} mysqld: pkg: - installed - - name: {{ pkg.name }} + - name: {{ pkgs['mysql-server'] }} service: - running - - name: {{ pkg.service }} + - name: {{ services['mysql'] }} - enable: True - require: - - pkg: mysql + - watch: + - pkg: mysqld