mirror of
https://github.com/saltstack-formulas/postgres-formula.git
synced 2025-04-16 09:40:26 +00:00
- add 'runas', 'user', and 'owner' to all database object creation
(where appropriate) - add missing 'requires' on database objects (schemas require databases, databases require users, etc....) - alter structure of schema and extension configuration: now schema and extension configuration follows the other items in that they are expected to be *dictionaries* where the key is the name of the object and the value is another subdictionary of configuration.
This commit is contained in:
parent
0220b67a85
commit
9b5526a680
1 changed files with 97 additions and 34 deletions
|
@ -91,6 +91,9 @@ postgresql-user-{{ name }}:
|
||||||
postgres_user.absent:
|
postgres_user.absent:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
- user: {{ user.get('runas', postgres.user) }}
|
- user: {{ user.get('runas', postgres.user) }}
|
||||||
|
{% if user.get('user') %}
|
||||||
|
- db_user: {{ user.user }}
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
postgres_user.present:
|
postgres_user.present:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
|
@ -99,20 +102,26 @@ postgresql-user-{{ name }}:
|
||||||
- createuser: {{ user.get('createuser', False) }}
|
- createuser: {{ user.get('createuser', False) }}
|
||||||
- inherit: {{ user.get('inherit', True) }}
|
- inherit: {{ user.get('inherit', True) }}
|
||||||
- replication: {{ user.get('replication', False) }}
|
- replication: {{ user.get('replication', False) }}
|
||||||
- password: {{ user.get('password', 'changethis') }}
|
- password: {{ user.password }}
|
||||||
- user: {{ user.get('runas', postgres.user) }}
|
|
||||||
- superuser: {{ user.get('superuser', False) }}
|
- superuser: {{ user.get('superuser', False) }}
|
||||||
|
- user: {{ user.get('runas', postgres.user) }}
|
||||||
|
{% if user.get('user') %}
|
||||||
|
- db_user: {{ user.get('runas', postgres.user) }}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
|
{% if user.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ user.user }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for name, directory in postgres.tablespaces.items() %}
|
{% for name, tblspace in postgres.tablespaces.items() %}
|
||||||
postgresql-tablespace-dir-perms-{{ directory}}:
|
postgresql-tablespace-dir-perms-{{ tblspace.directory}}:
|
||||||
file.directory:
|
file.directory:
|
||||||
- name: {{ directory }}
|
- name: {{ tblspace.directory }}
|
||||||
- user: postgres
|
- user: {{ postgres.user }}
|
||||||
- group: postgres
|
- group: {{ postgres.group }}
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
- recurse:
|
- recurse:
|
||||||
- user
|
- user
|
||||||
|
@ -121,11 +130,17 @@ postgresql-tablespace-dir-perms-{{ directory}}:
|
||||||
postgresql-tablespace-{{ name }}:
|
postgresql-tablespace-{{ name }}:
|
||||||
postgres_tablespace.present:
|
postgres_tablespace.present:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
- directory: {{ directory }}
|
- directory: {{ tblspace.directory }}
|
||||||
- user: postgres
|
- user: {{ tblspace.get('runas', postgres.user) }}
|
||||||
|
{% if tblspace.get('user') %}
|
||||||
|
- db_user: {{ tblspace.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if tblspace.get('owner') %}
|
||||||
|
- owner: {{ tblspace.owner }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
- file: postgresql-tablespace-dir-perms-{{ directory}}
|
- file: postgresql-tablespace-dir-perms-{{ tblspace.directory}}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for name, db in postgres.databases.items() %}
|
{% for name, db in postgres.databases.items() %}
|
||||||
|
@ -133,6 +148,10 @@ postgresql-db-{{ name }}:
|
||||||
{% if db.get('ensure', 'present') == 'absent' %}
|
{% if db.get('ensure', 'present') == 'absent' %}
|
||||||
postgres_database.absent:
|
postgres_database.absent:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
|
- user: {{ db.get('runas', postgres.user) }}
|
||||||
|
{% if db.get('user') %}
|
||||||
|
- db_user: {{ db.user }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -144,50 +163,94 @@ postgresql-db-{{ name }}:
|
||||||
- template: {{ db.get('template', 'template0') }}
|
- template: {{ db.get('template', 'template0') }}
|
||||||
- tablespace: {{ db.get('tablespace', 'pg_default') }}
|
- tablespace: {{ db.get('tablespace', 'pg_default') }}
|
||||||
{% if db.get('owner') %}
|
{% if db.get('owner') %}
|
||||||
- owner: {{ db.get('owner') }}
|
- owner: {{ db.owner }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- user: {{ db.get('runas', postgres.user) }}
|
- user: {{ db.get('runas', postgres.user) }}
|
||||||
|
{% if db.get('user') %}
|
||||||
|
- db_user: {{ db.user }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
|
{% if db.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ db.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if db.get('owner') %}
|
||||||
|
- postgres_user: postgresql-user-{{ db.owner }}
|
||||||
|
{% endif %}
|
||||||
{% if db.get('tablespace') %}
|
{% if db.get('tablespace') %}
|
||||||
- postgres_tablespace: postgresql-tablespace-{{ name }}
|
- postgres_tablespace: postgresql-tablespace-{{ name }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if db.get('owner') %}
|
|
||||||
- postgres_user: postgresql-user-{{ db.get('owner') }}
|
{# NOTE: postgres_schema doesn't have a 'runas' equiv. at all #}
|
||||||
|
{% for schema_name, schema in db.get('schemas', dict()).items() %}
|
||||||
|
postgresql-schema-{{ schema_name }}-for-db-{{ name }}:
|
||||||
|
{% if schema.get('ensure', 'present') == 'absent' %}
|
||||||
|
postgres_schema.absent:
|
||||||
|
- name: {{ schema_name }}
|
||||||
|
{% if schema.get('user') %}
|
||||||
|
- db_user: {{ schema.user }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
- require:
|
||||||
{% if db.schemas is defined %}
|
- service: postgresql-running
|
||||||
{% for schema, schema_args in db.schemas.items() %}
|
{% else %}
|
||||||
postgresql-schema-{{ schema }}-for-db-{{ name }}:
|
|
||||||
postgres_schema.present:
|
postgres_schema.present:
|
||||||
- name: {{ schema }}
|
- name: {{ schema_name }}
|
||||||
- dbname: {{ name }}
|
- dbname: {{ name }}
|
||||||
{% if schema_args is not none %}
|
{% if schema.get('user') %}
|
||||||
{% for arg, value in schema_args.items() %}
|
- db_user: {{ schema.user }}
|
||||||
- {{ arg }}: {{ value }}
|
{% endif %}
|
||||||
{% endfor %}
|
{% if schema.get('owner') %}
|
||||||
|
- owner: {{ schema.owner }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
|
- postgres_database: postgresql-db-{{ name }}
|
||||||
|
{% if schema.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ schema.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if schema.get('owner') %}
|
||||||
|
- postgres_user: postgresql-user-{{ schema.owner }}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if db.extensions is defined %}
|
{% for ext_name, ext in db.get('extensions', dict()).items() %}
|
||||||
{% for ext, ext_args in db.extensions.items() %}
|
postgresql-ext-{{ ext_name }}-for-db-{{ name }}:
|
||||||
postgresql-ext-{{ ext }}-for-db-{{ name }}:
|
{% if ext.get('ensure', 'present') == 'absent' %}
|
||||||
|
postgres_extension.absent:
|
||||||
|
- name: {{ ext_name }}
|
||||||
|
- user: {{ ext.get('runas', postgres.user) }}
|
||||||
|
{% if ext.get('user') %}
|
||||||
|
- db_user: {{ ext.user }}
|
||||||
|
{% endif %}
|
||||||
|
- require:
|
||||||
|
- service: postgresql-running
|
||||||
|
{% else %}
|
||||||
postgres_extension.present:
|
postgres_extension.present:
|
||||||
- name: {{ ext }}
|
- name: {{ ext_name }}
|
||||||
- user: {{ db.get('runas', postgres.user) }}
|
- user: {{ ext.get('runas', postgres.user) }}
|
||||||
|
{% if ext.get('user') %}
|
||||||
|
- db_user: {{ ext.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if ext.get('version') %}
|
||||||
|
- ext_version: {{ ext.version }}
|
||||||
|
{% endif %}
|
||||||
|
{% if ext.get('schema') %}
|
||||||
|
- schema: {{ ext.schema }}
|
||||||
|
{% endif %}
|
||||||
- maintenance_db: {{ name }}
|
- maintenance_db: {{ name }}
|
||||||
{% if ext_args is not none %}
|
|
||||||
{% for arg, value in ext_args.items() %}
|
|
||||||
- {{ arg }}: {{ value }}
|
|
||||||
{% endfor %}
|
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
{% endif %}
|
- postgres_database: postgresql-db-{{ name }}
|
||||||
|
{% if ext.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ ext.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if ext.get('schema') %}
|
||||||
|
- postgres_schema: postgresql-schema-{{ ext.schema }}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue