From d1de0fdfc6c1c6daf34b19cae2efb6b3d9789223 Mon Sep 17 00:00:00 2001
From: Alexander Weidinger <aw@sz9i.net>
Date: Tue, 9 Apr 2019 22:54:36 +0200
Subject: [PATCH] Allow to remove DB user
---
mysql/user.sls | 34 ++++++++++++++++++++--------------
pillar.example | 6 ++++++
2 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/mysql/user.sls b/mysql/user.sls
index e729bf8..fa0b6e4 100644
--- a/mysql/user.sls
+++ b/mysql/user.sls
@@ -34,22 +34,28 @@ include:
{% set state_id = 'mysql_user_' ~ name ~ '_' ~ host%}
{{ state_id }}:
- mysql_user.present:
- - name: {{ name }}
- - host: '{{ host }}'
- {%- if user['password_hash'] is defined %}
- - password_hash: '{{ user['password_hash'] }}'
- {%- elif user['password'] is defined and user['password'] != None %}
- - password: '{{ user['password'] }}'
+ {%- if user.get('present', True) %}
+ mysql_user.present:
+ - name: {{ name }}
+ - host: '{{ host }}'
+ {%- if user['password_hash'] is defined %}
+ - password_hash: '{{ user['password_hash'] }}'
+ {%- elif user['password'] is defined and user['password'] != None %}
+ - password: '{{ user['password'] }}'
+ {%- else %}
+ - allow_passwordless: True
+ {%- endif %}
{%- else %}
- - allow_passwordless: True
+ mysql_user.absent:
+ - name: {{ name }}
+ - host: '{{ host }}'
{%- endif %}
- - connection_host: '{{ mysql_host }}'
- - connection_user: '{{ mysql_salt_user }}'
- {% if mysql_salt_pass %}
- - connection_pass: '{{ mysql_salt_pass }}'
- {% endif %}
- - connection_charset: utf8
+ - connection_host: '{{ mysql_host }}'
+ - connection_user: '{{ mysql_salt_user }}'
+ {%- if mysql_salt_pass %}
+ - connection_pass: '{{ mysql_salt_pass }}'
+ {%- endif %}
+ - connection_charset: utf8
{%- if 'grants' in user %}
{{ state_id ~ '_grants' }}:
diff --git a/pillar.example b/pillar.example
index 399f483..bcdbf82 100644
--- a/pillar.example
+++ b/pillar.example
@@ -143,6 +143,12 @@ mysql:
- database: foo
grants: ['select', 'insert', 'update']
+ # Remove a user
+ obsoleteuser:
+ host: localhost
+ # defaults to True
+ present: False
+
# Override any names defined in map.jinja
# serverpkg: mysql-server
# clientpkg: mysql-client
--
GitLab