Skip to content

Commit

Permalink
Fixes #28697: Add Postgres upgrade to Foreman scenario
Browse files Browse the repository at this point in the history
  • Loading branch information
ehelms committed Jan 8, 2020
1 parent 63e2191 commit 67724e3
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 33 deletions.
10 changes: 10 additions & 0 deletions config/foreman.hiera/family/RedHat-7.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,14 @@ mongodb::server::logpath: false
mongodb::server::config_template: 'mongodb/mongodb.conf.2.6.erb'
mongodb::server::manage_pidfile: false
mongodb::server::pidfilepath: '/var/opt/rh/rh-mongodb34/run/mongodb/mongod.pid'

redis::globals::scl: rh-redis5

postgresql::globals::version: '10'
postgresql::globals::client_package_name: rh-postgresql10-postgresql-syspaths
postgresql::globals::server_package_name: rh-postgresql10-postgresql-server-syspaths
postgresql::globals::contrib_package_name: rh-postgresql10-postgresql-contrib-syspaths
postgresql::globals::service_name: postgresql
postgresql::globals::datadir: /var/opt/rh/rh-postgresql10/lib/pgsql/data
postgresql::globals::confdir: /var/opt/rh/rh-postgresql10/lib/pgsql/data
postgresql::globals::bindir: /usr/bin

This file was deleted.

9 changes: 0 additions & 9 deletions config/foreman.hiera/scenario/katello/family/RedHat-7.yaml

This file was deleted.

18 changes: 18 additions & 0 deletions hooks/pre/30-upgrade-postgresql.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def postgresql_10_upgrade
execute('foreman-maintain service start --only=postgresql')
(name, owner, enconding, collate, ctype, privileges) = %x{runuser postgres -c 'psql -lt | grep -E "^\s+postgres"'}.chomp.split('|').map(&:strip)
execute('foreman-maintain service stop')
execute('yum -y install rh-postgresql10-postgresql-server')
execute(%Q{scl enable rh-postgresql10 "PGSETUP_INITDB_OPTIONS='--lc-collate=#{collate} --lc-ctype=#{ctype} --locale=#{collate}' postgresql-setup --upgrade"})
execute('yum -y remove postgresql postgresql-server')
execute('rm -f /etc/systemd/system/postgresql.service')
execute('yum -y install rh-postgresql10-syspaths')
end

if local_postgresql? && facts[:os][:release][:major] == '7' && module_enabled?('foreman')
`rpm -q rh-postgresql10-syspaths`

unless $?.success?
postgresql_10_upgrade
end
end
32 changes: 32 additions & 0 deletions hooks/pre_validations/30-upgrade-postgresql.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
def check_postgresql_storage
#Ensure there is at least 1x /var/lib/pgsql free disk space available on the main filesystem
current_postgres_dir = '/var/lib/pgsql'
new_postgres_dir = '/var/opt/rh/rh-postgresql10/lib/pgsql'

begin
postgres_size = `du -b -s #{current_postgres_dir}`.split[0].to_i

if available_space(new_postgres_dir) < postgres_size
fail_and_exit "The postgres upgrade requires at least #{(postgres_size / 1024) / 1024} MB of storage."
end
rescue StandardError
fail_and_exit 'Failed to verify available disk space'
end
end

def available_space(directory = nil)
directory = '/' if directory.nil?
mountpoints = facts[:mountpoints]
until (mountpoint = mountpoints[directory.to_sym])
directory = File.dirname(directory)
end
mountpoint[:available_bytes]
end

if local_postgresql? && facts[:os][:release][:major] == '7' && module_enabled?('foreman')
`rpm -q rh-postgresql10-syspaths`

unless $?.success?
check_postgresql_storage
end
end
15 changes: 0 additions & 15 deletions katello/hooks/pre/30-upgrade.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,6 @@ def migrate_foreman
execute('foreman-rake db:migrate')
end

def postgresql_10_upgrade
start_postgresql
(name, owner, enconding, collate, ctype, privileges) = %x{runuser postgres -c 'psql -lt | grep -E "^\s+postgres"'}.chomp.split('|').map(&:strip)
stop_services
execute('yum -y install rh-postgresql10-postgresql-server')
execute(%Q{scl enable rh-postgresql10 "PGSETUP_INITDB_OPTIONS='--lc-collate=#{collate} --lc-ctype=#{ctype} --locale=#{collate}' postgresql-setup --upgrade"})
execute('yum -y remove postgresql postgresql-server')
execute('rm -f /etc/systemd/system/postgresql.service')
execute('yum -y install rh-postgresql10-syspaths')
end

def upgrade_step(step, options = {})
noop = app_value(:noop) ? ' (noop)' : ''
long_running = options[:long_running] ? ' (this may take a while) ' : ''
Expand Down Expand Up @@ -91,9 +80,5 @@ def step_path(step)
upgrade_step :migrate_foreman, :run_always => true
end

if local_postgresql? && facts[:os][:release][:major] == '7'
upgrade_step :postgresql_10_upgrade
end

log_and_say :info, 'Upgrade Step: Running installer...'
end

0 comments on commit 67724e3

Please sign in to comment.