fix(postgres.manage): only reload modules if needed (fix: #214)

We don't want the `postgres-reload-modules` state reporting any changes
to the user unless there is a need to reload the modules. We should only
need to reload the modules if the state that manages installing the
client libraries makes any changes (ie. new packages installed).

In turn, the states created by the `format_state` macro only need to
ensure that any module reload occurs before those states are applied. In
which case using a `require` makes more sense that using `onchanges`
(which may not be guaranteed to trigger).
This commit is contained in:
John Kristensen 2021-09-09 00:34:57 +10:00
parent 7529300c28
commit 823dde7dcf
2 changed files with 3 additions and 1 deletions

View file

@ -26,7 +26,7 @@
{{ state }}-{{ name }}:
{{ state }}.{{ ensure|default('present') }}:
{{- format_kwargs(kwarg) }}
- onchanges:
- require:
- test: postgres-reload-modules
{%- endmacro %}

View file

@ -20,6 +20,8 @@ include:
postgres-reload-modules:
test.succeed_with_changes:
- reload_modules: True
- onchanges:
- pkg: postgresql-client-libs
# User states