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 Aug 7, 2024
1 parent de26c75 commit 9fdde30
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
1 change: 1 addition & 0 deletions hooks/boot/01-kafo-hook-extensions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ def execute!(command, do_say = true, do_log = true)
log_and_say(:error, "#{command} failed! Check the output for error!", do_say, do_log)
exit 1
end
stdout_stderr
end

def execute_as!(user, command, do_say = true, do_log = true)
Expand Down
24 changes: 24 additions & 0 deletions hooks/pre/35-change-evr-extension-ownership.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# In Katello 4.14, 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)&.first&.strip == "active"

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

# Update the ownership of the evr extension
unless app_value(:noop)
logger.debug("Updating ownership of the evr extension if it is enabled")
execute!("runuser -l postgres -c \"psql -d foreman -c \\\"UPDATE pg_extension SET extowner = (SELECT oid FROM pg_authid WHERE rolname='foreman') WHERE extname='evr';\\\"\"", false, true)
end

# Stop the PostgreSQL service if it was not running
unless is_postgresql_active || app_value(:noop)
logger.debug("Stopping postgresql service")
stop_services(['postgresql'])
end
end
2 changes: 1 addition & 1 deletion spec/hook_context_extension_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@
end

it 'executes a command' do
expect(subject).to be_nil
expect(subject).to eq(command)
expect(context).to have_received(:execute_command).with(command, true, true)
end
end
Expand Down

0 comments on commit 9fdde30

Please sign in to comment.