Skip to content

Commit

Permalink
Fixes #37717 - Update evr extension ownership to foreman
Browse files Browse the repository at this point in the history
  • Loading branch information
sjha4 committed Nov 25, 2024
1 parent 349e482 commit 5f2813a
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions hooks/pre/35-change-evr-extension-ownership.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# In Katello 4.16, the 'evr' extension is removed from PostgreSQL and integrated into the Katello database via a migration.
# This hook ensures the 'evr' extension's ownership is transferred to the 'foreman' user so migrations can act on it.

if local_postgresql? && execute("rpm -q postgresql-evr", false, false)
is_postgresql_active = execute_command("systemctl is-active postgresql", false, true)&.last&.exitstatus == 0

# Ensure the PostgreSQL service is running
unless is_postgresql_active
logger.debug("Starting postgresql service")
start_services(['postgresql']) unless app_value(:noop)
end

# Update the ownership of the evr extension
logger.debug("Updating ownership of the evr extension if it is enabled")
database = param_value('foreman', 'db_database') || 'foreman'
username = param_value('foreman', 'db_username') || 'foreman'
sql = "psql -d '#{database}' -c \\\"UPDATE pg_extension SET extowner = (SELECT oid FROM pg_authid WHERE rolname='#{username}') WHERE extname='evr';\\\""
logger.debug("Executing: #{sql}")
execute_as!('postgres', sql, false, true) unless app_value(:noop)

# Stop the PostgreSQL service if it was not running
unless is_postgresql_active
logger.debug("Stopping postgresql service")
stop_services(['postgresql']) unless app_value(:noop)
end
end

0 comments on commit 5f2813a

Please sign in to comment.