Skip to content

Conversation

dragomirp
Copy link
Contributor

@dragomirp dragomirp commented Jun 16, 2025

Port of canonical/postgresql-operator#959 from VM

Hold the database requested hook instead of relying on relation changed events

Checklist

  • I have added or updated any relevant documentation.
  • I have cleaned any remaining cloud resources from my accounts.

Copy link

codecov bot commented Jun 16, 2025

Codecov Report

Attention: Patch coverage is 60.00000% with 4 lines in your changes missing coverage. Please review.

Project coverage is 73.11%. Comparing base (b4e644a) to head (e5461ec).
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
src/relations/postgresql_provider.py 60.00% 3 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1001      +/-   ##
==========================================
+ Coverage   73.02%   73.11%   +0.09%     
==========================================
  Files          15       15              
  Lines        3870     3872       +2     
  Branches      564      566       +2     
==========================================
+ Hits         2826     2831       +5     
+ Misses        834      830       -4     
- Partials      210      211       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

# Increment this PATCH version before using `charmcraft publish-lib` or reset
# to 0 if you are raising the major API version
LIBPATCH = 55
LIBPATCH = 53
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Next patch version.

@dragomirp dragomirp marked this pull request as ready for review June 17, 2025 01:41
@dragomirp dragomirp added the not bug or enhancement PR is not 'bug' or 'enhancement'. For release notes label Jun 17, 2025
@dragomirp dragomirp requested review from a team, taurus-forever and marceloneppel and removed request for a team June 17, 2025 01:42
@dragomirp dragomirp merged commit 3e9b4d0 into main Jun 17, 2025
569 of 591 checks passed
@dragomirp dragomirp deleted the hba-tweaks-14 branch June 17, 2025 13:41
dragomirp added a commit that referenced this pull request Jul 30, 2025
* Sync docs from Discourse (#864)

Co-authored-by: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com>

* Refactor v14 documentation for Sphinx (#981)

* add starter pack and sync tutorial with VM
* update deployment guides
* rename how-to-guides to how-to
* sync how-to guides with vm
* sync references with vm
* sync explanation pages with vm
* add .readthedocs.yaml and reduce .gitignore scope for requirements.txt file
* fix some formatting issues
* sync backup guides with vm
* fix misc. build errors and sync tutorial with vm
* add doc ci checks
* remove discourse sync workflow
* polish tutorial and deploy guide
* specify channel on all deploy commands
* sync misc. pages with vm
* minor README update with new documentation link
* ignore docs folder in development workflows
* remove sphinx python dependency check workflow
* update home page

* [DPE-7510] Fix the auth username pattern (#987)

* Fix auth username pattern

Signed-off-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>

* Fix unit test

Signed-off-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>

* Fix another ocurrence of the pattern

Signed-off-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>

---------

Signed-off-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>

* Update ghcr.io/canonical/charmed-postgresql Docker tag to v14.18 (#983)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Add redirects for all charmhub pages (14) (#994)

* chore: rename interfaces-endpoints for consistency with VM

* update references to interfaces-and-endpoints

* add rediraffe sphinx extension and redirect mapping list

* fix: add forward slash to redirect paths (#998)

* Fix broken URLs and spelling errors (#993)

* add starter pack and sync tutorial with VM

* update deployment guides

* rename how-to-guides to how-to

* sync how-to guides with vm

* sync references with vm

* sync explanation pages with vm

* add .readthedocs.yaml and reduce .gitignore scope for requirements.txt file

* fix some formatting issues

* sync backup guides with vm

* fix misc. build errors and sync tutorial with vm

* add doc ci checks

* remove discourse sync workflow

* polish tutorial and deploy guide

* specify channel on all deploy commands

* sync misc. pages with vm

* minor README update with new documentation link

* ignore docs folder in development workflows

* remove sphinx python dependency check workflow

* update home page

* fix some broken links

* fix broken links

* fix spelling errors in docs

* fix spelling errors in other markdown files

* small spelling fix

* Renovate team (#999)

* [MISC] Hold database created hook for pg_hba changes (#1001)

* Hold database created hook for pg_hba changes

* Restore the old blocking hook

* 16/edge lib changes

* Set to expected patch version

* fix: internal reference typo (#1006)

* Lock file maintenance Python dependencies (#962)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* DPE-6662 Fix pgbackrest logs names on logs rotation (#996)

The pgBackRest activity (backup creation, stanza initialisation, etc) could take minutes,
as a result every minute logs rotation could move the current log A.log to A.log_$date.log
and will be moved further as logrorate rule operates all *.log files in the folder:

> /var/snap/charmed-postgresql/common/var/log/pgbackrest/*.log { ...

It results in:

-rw------- 1 postgres postgres     0 Feb 18 09:25 all-server.log
-rw------- 1 postgres postgres     0 Feb 18 09:19 all-server.log-20250218_09:18.log
-rw------- 1 postgres postgres     0 Feb 18 09:20 all-server.log-20250218_09:18.log-20250218_09:19.log
-rw------- 1 postgres postgres     0 Feb 18 09:21 all-server.log-20250218_09:18.log-20250218_09:19.log-20250218_09:20.log
-rw------- 1 postgres postgres     0 Feb 18 09:22 all-server.log-20250218_09:18.log-20250218_09:19.log-20250218_09:20.log-20250218_09:21.log
-rw------- 1 postgres postgres     0 Feb 18 09:23 all-server.log-20250218_09:18.log-20250218_09:19.log-20250218_09:20.log-20250218_09:21.log-20250218_09:22.log
-rw------- 1 postgres postgres  1793 Feb 18 09:24 all-server.log-20250218_09:18.log-20250218_09:19.log-20250218_09:20.log-20250218_09:21.log-20250218_09:22.log-20250218_09:23.log

The poposed fix:
* move the log file to the new name without .log suffix.
* use datetime format matching MySQL charms

Example:

-rw------- 1 postgres postgres    12 Feb 18 09:28 all-server.log
-rw------- 1 postgres postgres   322 Feb 18 09:29 all-server.log-20250218_0918
-rw------- 1 postgres postgres  7344 Feb 18 09:30 all-server.log-20250218_0918

* Update canonical/data-platform-workflows action to v32 (main) (#961)

* Update canonical/data-platform-workflows action to v32

* Switch release flow

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Dragomir Penev <dragomir.penev@canonical.com>

* update links to ops tutorial and charm (#1015)

* [MISC] Update libs and remove warning (#1014)

* Update libs

* Workflow tweaks

* Remove from_environ warning

* Lock file maintenance Python dependencies (#1012)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Delete runner password (#1023)

* remove markdown-linter action (#1028)

* [DPE-7594] Sync up pg_hba changes and remove trigger (#1007)

* More aggressive idle checks

* Explicit idle

* Idle period when relating to the test app

* Remove second start

* Remove log warning

* Hold create db hook for longer

* Bump the pg_hba checker timeout

* Don't update config

* Bump timeout

* Try to just append to pg_hba

* Sync hba changes before creating db resources

* Force regenerate hash and config on leader

* Use current host to check hba

* Update libs

* Compare to local hash

* Cla check for 16/edge

* Don't defer peer change before init

* Add back app check

* Revert back to just updating peer data

* Only sync hba once initially set

* Bump timeout

* Don't filter appends to pg_hba

* Append the rel users directly to the user map

* Add idle timeout

* Remove trigger

* Sleep longer

* Set extra user roles

* Always update hash

* Bump sleep period

* Revert the trigger

* Move generate_user_hash to charm

* Conditional hash update

* Try to sort keys

* Revert to relation user hash

* Try to reduce the amount of ifs

* Remove trigger

* Blocked test app

* Ignore blocked

---------

Signed-off-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andreia <andreia.velasco@canonical.com>
Co-authored-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lutay <1928266+taurus-forever@users.noreply.github.com>
Co-authored-by: Dave Wilding <tech@dpw.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Libraries: Out of sync not bug or enhancement PR is not 'bug' or 'enhancement'. For release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants