postgresql-charms-single-kernel 16.1.1__py3-none-any.whl → 16.1.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: postgresql-charms-single-kernel
3
- Version: 16.1.1
3
+ Version: 16.1.2
4
4
  Summary: Shared and reusable code for PostgreSQL-related charms
5
5
  Author-email: Canonical Data Platform <data-platform@lists.launchpad.net>
6
6
  License-Expression: Apache-2.0
@@ -4,8 +4,8 @@ single_kernel_postgresql/config/__init__.py,sha256=k9Ud5ZZNd3l0nn8xi8AIlT45oZk8h
4
4
  single_kernel_postgresql/config/literals.py,sha256=88r33TBX7SXqgpV6EEXtZmSJrfOtsFiVJ_omop0RuBo,643
5
5
  single_kernel_postgresql/utils/__init__.py,sha256=VwAEW3wYjs99q38bid47aS6Os4s3catK4H5HfdPkp94,121
6
6
  single_kernel_postgresql/utils/filesystem.py,sha256=CJ2iXqFPKM0NfqqZSTDlENOrM0RW7rmTmcuzwV0bR9A,552
7
- single_kernel_postgresql/utils/postgresql.py,sha256=IiEOFzrpiDXRWgwnvywiul9f8gU8hxCBaSqVFUyFgjU,79617
8
- postgresql_charms_single_kernel-16.1.1.dist-info/METADATA,sha256=UD9GAm4GA4tQKAaWsDiR5uyN-k921jq2nt8Uwq6sqsE,484
9
- postgresql_charms_single_kernel-16.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
- postgresql_charms_single_kernel-16.1.1.dist-info/top_level.txt,sha256=fH85HKyfDV3--1JuYe-rWJmN5XTlXVXGOBO5iNA36Rk,25
11
- postgresql_charms_single_kernel-16.1.1.dist-info/RECORD,,
7
+ single_kernel_postgresql/utils/postgresql.py,sha256=7gATjLnncNXVTIzEpk5XLJaOdq8ZnBMwslFBqHEqz_s,80951
8
+ postgresql_charms_single_kernel-16.1.2.dist-info/METADATA,sha256=qW0Vn1vH5bQc0hh9e9vqsy6xoi4lTdgS_FQQsHa2QSk,484
9
+ postgresql_charms_single_kernel-16.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
+ postgresql_charms_single_kernel-16.1.2.dist-info/top_level.txt,sha256=fH85HKyfDV3--1JuYe-rWJmN5XTlXVXGOBO5iNA36Rk,25
11
+ postgresql_charms_single_kernel-16.1.2.dist-info/RECORD,,
@@ -1885,7 +1885,7 @@ $$ LANGUAGE plpgsql security definer;""" # noqa: S608
1885
1885
  def add_user_to_databases(
1886
1886
  self, user: str, databases: List[str], extra_user_roles: Optional[List[str]] = None
1887
1887
  ) -> None:
1888
- """Grant user access to database."""
1888
+ """Grant user access to a database."""
1889
1889
  try:
1890
1890
  roles, _ = self._process_extra_user_roles(user, extra_user_roles)
1891
1891
  connect_stmt = []
@@ -1907,5 +1907,34 @@ $$ LANGUAGE plpgsql security definer;""" # noqa: S608
1907
1907
  for statement in connect_stmt:
1908
1908
  cursor.execute(statement)
1909
1909
  except psycopg2.Error as e:
1910
- logger.error(f"Failed to create user: {e}")
1910
+ logger.error(f"Failed to add user: {e}")
1911
+ raise PostgreSQLUpdateUserError() from e
1912
+
1913
+ def remove_user_from_databases(self, user: str, databases: List[str]) -> None:
1914
+ """Revoke user access to a database."""
1915
+ try:
1916
+ for database in databases:
1917
+ with self._connect_to_database() as connection, connection.cursor() as cursor:
1918
+ cursor.execute(
1919
+ SQL("REVOKE CONNECT ON DATABASE {} FROM {};").format(
1920
+ Identifier(database), Identifier(user)
1921
+ )
1922
+ )
1923
+ cursor.execute(
1924
+ SQL("REVOKE {} FROM {};").format(
1925
+ Identifier(f"charmed_{database}_owner"), Identifier(user)
1926
+ )
1927
+ )
1928
+ cursor.execute(
1929
+ SQL("REVOKE {} FROM {};").format(
1930
+ Identifier(f"charmed_{database}_admin"), Identifier(user)
1931
+ )
1932
+ )
1933
+ cursor.execute(
1934
+ SQL("REVOKE {} FROM {};").format(
1935
+ Identifier(f"charmed_{database}_dml"), Identifier(user)
1936
+ )
1937
+ )
1938
+ except psycopg2.Error as e:
1939
+ logger.error(f"Failed to remove user: {e}")
1911
1940
  raise PostgreSQLUpdateUserError() from e