From b20a8e77b4cc20ac9441430e2f000e1bbeb240af Mon Sep 17 00:00:00 2001 From: Jerzy Drozdz Date: Thu, 14 Jun 2018 23:46:58 +0200 Subject: [PATCH 1/4] Fixed problems with per database extensions and schemas --- postgres/manage.sls | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/postgres/manage.sls b/postgres/manage.sls index 1931155..2fc5529 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -44,7 +44,25 @@ postgres-reload-modules: # Database states {%- for name, db in postgres.databases|dictsort() %} - + {%- if 'extensions' in db %} + {%- for ext_name, extension in db.pop('extensions')|dictsort() %} + {%- do extension.update({'maintenance_db': name }) %} +{{ format_state( name + '-' + ext_name, 'postgres_extension', extension) }} + - require: + - postgres_database: postgres_database-{{ name }} + {%- if 'schema' in extension %} + - postgres_schema: postgres_schema-{{ extension.schema }} + {%- endif %} + {%- endfor %} + {%- endif %} + {%- if 'schemas' in db %} + {%- for schema_name, schema in db.pop('schemas')|dictsort() %} + {%- do schema.update({'dbname': name }) %} +{{ format_state( schema_name, 'postgres_schema', schema) }} + - require: + - postgres_database: postgres_database-{{ name }} + {%- endfor %} + {%- endif %} {{ format_state(name, 'postgres_database', db) }} {%- if 'owner' in db or 'tablespace' in db %} - require: @@ -55,7 +73,6 @@ postgres-reload-modules: {%- if 'tablespace' in db %} - postgres_tablespace: postgres_tablespace-{{ db.tablespace }} {%- endif %} - {%- endfor %} # Schema states @@ -63,8 +80,9 @@ postgres-reload-modules: {%- for name, schema in postgres.schemas|dictsort() %} {{ format_state(name, 'postgres_schema', schema) }} - {%- if 'owner' in schema %} - require: + - postgres_database-{{ dbname }} + {%- if 'owner' in schema %} - postgres_user: postgres_user-{{ schema.owner }} {%- endif %} From ed1315feedca7287416288e453be757893decdf3 Mon Sep 17 00:00:00 2001 From: Jerzy Drozdz Date: Sat, 16 Jun 2018 19:24:55 +0200 Subject: [PATCH 2/4] Fixed variable typo --- postgres/manage.sls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postgres/manage.sls b/postgres/manage.sls index 2fc5529..6d2cb62 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -81,7 +81,7 @@ postgres-reload-modules: {{ format_state(name, 'postgres_schema', schema) }} - require: - - postgres_database-{{ dbname }} + - postgres_database-{{ schema.dbname }} {%- if 'owner' in schema %} - postgres_user: postgres_user-{{ schema.owner }} {%- endif %} From d9fa886c6da66b9305ce43bb232220e16ad81a60 Mon Sep 17 00:00:00 2001 From: Jerzy Drozdz Date: Tue, 19 Jun 2018 20:39:14 +0200 Subject: [PATCH 3/4] Formating changes, to improve readability --- postgres/manage.sls | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/postgres/manage.sls b/postgres/manage.sls index 6d2cb62..59c98b0 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -47,22 +47,27 @@ postgres-reload-modules: {%- if 'extensions' in db %} {%- for ext_name, extension in db.pop('extensions')|dictsort() %} {%- do extension.update({'maintenance_db': name }) %} + {{ format_state( name + '-' + ext_name, 'postgres_extension', extension) }} - require: - postgres_database: postgres_database-{{ name }} {%- if 'schema' in extension %} - postgres_schema: postgres_schema-{{ extension.schema }} {%- endif %} + {%- endfor %} {%- endif %} {%- if 'schemas' in db %} {%- for schema_name, schema in db.pop('schemas')|dictsort() %} {%- do schema.update({'dbname': name }) %} + {{ format_state( schema_name, 'postgres_schema', schema) }} - require: - postgres_database: postgres_database-{{ name }} + {%- endfor %} {%- endif %} + {{ format_state(name, 'postgres_database', db) }} {%- if 'owner' in db or 'tablespace' in db %} - require: @@ -73,6 +78,7 @@ postgres-reload-modules: {%- if 'tablespace' in db %} - postgres_tablespace: postgres_tablespace-{{ db.tablespace }} {%- endif %} + {%- endfor %} # Schema states From 6d895423c1a76499d063b2779838045925574a31 Mon Sep 17 00:00:00 2001 From: Jerzy Drozdz Date: Tue, 19 Jun 2018 20:52:25 +0200 Subject: [PATCH 4/4] Added support for explicit state names in format_state macro --- postgres/macros.jinja | 4 +++- postgres/manage.sls | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/postgres/macros.jinja b/postgres/macros.jinja index 4eedddb..e61754a 100644 --- a/postgres/macros.jinja +++ b/postgres/macros.jinja @@ -12,7 +12,9 @@ {%- macro format_state(name, state, kwarg) %} - {%- do kwarg.update({'name': name}) %} + {%- if 'name' not in kwarg %} + {%- do kwarg.update({'name': name}) %} + {%- endif %} {%- if 'ensure' in kwarg %} {%- set ensure = kwarg.pop('ensure') %} {%- endif %} diff --git a/postgres/manage.sls b/postgres/manage.sls index 59c98b0..3128da3 100644 --- a/postgres/manage.sls +++ b/postgres/manage.sls @@ -46,7 +46,7 @@ postgres-reload-modules: {%- for name, db in postgres.databases|dictsort() %} {%- if 'extensions' in db %} {%- for ext_name, extension in db.pop('extensions')|dictsort() %} - {%- do extension.update({'maintenance_db': name }) %} + {%- do extension.update({'name': ext_name, 'maintenance_db': name}) %} {{ format_state( name + '-' + ext_name, 'postgres_extension', extension) }} - require: @@ -59,9 +59,9 @@ postgres-reload-modules: {%- endif %} {%- if 'schemas' in db %} {%- for schema_name, schema in db.pop('schemas')|dictsort() %} - {%- do schema.update({'dbname': name }) %} + {%- do schema.update({'name': schema_name, 'dbname': name }) %} -{{ format_state( schema_name, 'postgres_schema', schema) }} +{{ format_state( name + '-' + schema_name, 'postgres_schema', schema) }} - require: - postgres_database: postgres_database-{{ name }}