Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jerrykan
Copy link

@jerrykan jerrykan commented Sep 8, 2021

PR progress checklist (to be filled in by reviewers)

  • Changes to documentation are appropriate (or tick if not required)
  • Changes to tests are appropriate (or tick if not required)
  • Reviews completed

What type of PR is this?

Primary type

  • [build] Changes related to the build system
  • [chore] Changes to the build process or auxiliary tools and libraries such as documentation generation
  • [ci] Changes to the continuous integration configuration
  • [feat] A new feature
  • [fix] A bug fix
  • [perf] A code change that improves performance
  • [refactor] A code change that neither fixes a bug nor adds a feature
  • [revert] A change used to revert a previous commit
  • [style] Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)

Secondary type

  • [docs] Documentation changes
  • [test] Adding missing or correcting existing tests

Does this PR introduce a BREAKING CHANGE?

No.

Related issues and/or pull requests

#214

Describe the changes you're proposing

I've read through the comments of other pull requests related to this issue to try and understand what the postgres-reload-modules state is trying to solve. Apologies if this attempted fix is a bit naive.

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). This is why we have added onchanges to the postgres-reload-modules state.

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).

Pillar / config required to test the proposed changes

Debug log showing how the proposed changes work

Documentation checklist

  • Updated the README (e.g. Available states).
  • Updated pillar.example.

Testing checklist

  • Included in Kitchen (i.e. under state_top).
  • Covered by new/existing tests (e.g. InSpec, Serverspec, etc.).
  • Updated the relevant test pillar.

Additional context

@jerrykan jerrykan requested review from myii and vutny as code owners September 8, 2021 14:56
…ormulas#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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant