satellite/install/install.pl | 31 ++++++--- spacewalk/setup/bin/spacewalk-setup | 14 +--- spacewalk/setup/lib/Spacewalk/Setup.pm | 99 +++++++++++++++++++++++++++-- spacewalk/setup/share/oracle/upgrade-db.sh | 2 4 files changed, 122 insertions(+), 24 deletions(-)
New commits: commit 1386b82babaf19de11e4c141aff0e0362a1583fa Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:59:00 2012 +0200
524015 - remove /etc/NOCpulse.ini during upgrade
diff --git a/satellite/install/install.pl b/satellite/install/install.pl index ca37e1f..e1b5dd5 100755 --- a/satellite/install/install.pl +++ b/satellite/install/install.pl @@ -72,6 +72,7 @@ Spacewalk::Setup::upgrade_stop_services(%opts); remove_obsoleted_packages(%opts); remove_jabberd_configs(%opts); remove_rhn_cache_and_kickstarts(%opts); +remove_nocpulse_ini(%opts);
my $run_updater; if (defined $opts{'run-updater'}) { @@ -553,6 +554,16 @@ sub remove_rhn_cache_and_kickstarts { } }
+sub remove_nocpulse_ini { + my $opts = shift; + + return unless ($opts->{'upgrade'}); + + if (-f "/etc/NOCpulse.ini") { + system("rm -f /etc/NOCpulse.ini > /dev/null 2>&1"); + } +} + sub ask { my %params = validate(@_, { question => 1, test => 0,
commit 760940f92267456cf335abc02895025502f39a08 Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:58:16 2012 +0200
upgrade: start pg server only when migrating
diff --git a/spacewalk/setup/bin/spacewalk-setup b/spacewalk/setup/bin/spacewalk-setup index a3412b1..0d7e694 100755 --- a/spacewalk/setup/bin/spacewalk-setup +++ b/spacewalk/setup/bin/spacewalk-setup @@ -150,7 +150,7 @@ print Spacewalk::Setup::loc("* Setting up Cobbler..\n"); setup_cobbler(%opts, %answers);
if ($opts{'upgrade'}) { - if (Spacewalk::Setup::is_embedded_db()) { + if (Spacewalk::Setup::is_embedded_db() and Spacewalk::Setup::is_db_migration()) { Spacewalk::Setup::postgresql_start(); }
commit 8051e06758d16d3ee8d3ee0a9a3f694de1d5bac6 Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:57:45 2012 +0200
don't restart services when upgrading
diff --git a/spacewalk/setup/bin/spacewalk-setup b/spacewalk/setup/bin/spacewalk-setup index 6311531..a3412b1 100755 --- a/spacewalk/setup/bin/spacewalk-setup +++ b/spacewalk/setup/bin/spacewalk-setup @@ -149,14 +149,6 @@ final_db_config(%opts, %answers); print Spacewalk::Setup::loc("* Setting up Cobbler..\n"); setup_cobbler(%opts, %answers);
-print Spacewalk::Setup::loc("* Restarting services.\n"); -Spacewalk::Setup::system_or_exit(['/usr/sbin/spacewalk-service', 'restart'], 40, - 'Could not restart spacewalk services.'); - -wait_for_tomcat($answers{hostname}) or exit 56; - -Spacewalk::Setup::upgrade_stop_services(%opts); - if ($opts{'upgrade'}) { if (Spacewalk::Setup::is_embedded_db()) { Spacewalk::Setup::postgresql_start(); @@ -168,6 +160,10 @@ if ($opts{'upgrade'}) { print Spacewalk::Setup::loc("for any remaining steps in the process.\n"); } } else { + print Spacewalk::Setup::loc("* Restarting services.\n"); + Spacewalk::Setup::system_or_exit(['/usr/sbin/spacewalk-service', 'restart'], 40, + 'Could not restart spacewalk services.'); + wait_for_tomcat($answers{hostname}) or exit 56; print Spacewalk::Setup::loc("Installation complete.\n"); print Spacewalk::Setup::loc("Visit https://%s to create the $product_name administrator account.\n", $answers{hostname}); }
commit 874261e7b6842270e95959cb3e981890761583ba Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:57:23 2012 +0200
set upgrade_db.log size to 22M
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index daa9088..770e27f 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -81,7 +81,7 @@ use constant RHN_LOG_DIR => use constant DB_UPGRADE_LOG_FILE => '/var/log/rhn/upgrade_db.log';
-use constant DB_UPGRADE_LOG_SIZE => 20000000; +use constant DB_UPGRADE_LOG_SIZE => 22000000;
use constant DB_INSTALL_LOG_SIZE => 11416;
commit 8a58ad16cce60d2b19fc2fb0042d9db091380fa3 Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:57:19 2012 +0200
don't duplicate database upgrade log
diff --git a/spacewalk/setup/share/oracle/upgrade-db.sh b/spacewalk/setup/share/oracle/upgrade-db.sh index fe9c443..2f13a34 100644 --- a/spacewalk/setup/share/oracle/upgrade-db.sh +++ b/spacewalk/setup/share/oracle/upgrade-db.sh @@ -116,6 +116,6 @@ m4 -I$ORACLE_ADMIN_DIR \ --define RHNORA_DB_USER=$DB_USER \ $UPGRADE_TMPL \ | $ORACLE_HOME/bin/sqlplus /nolog \ - | cat > /rhnsat/admin/rhnsat/logs/upgrade_$ORACLE_SID.log + | cat -
set +x
commit 25bfaf60faeea8b96216895dbfda89b4e9ef1511 Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:56:24 2012 +0200
don't support custom db-name in an answer file
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index fbaaf31..daa9088 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -1234,7 +1234,7 @@ sub oracle_setup_embedded_db { } else { $answers->{'db-user'} = 'rhnsat' if not defined $answers->{'db-user'}; $answers->{'db-password'} = 'rhnsat' if not defined $answers->{'db-password'}; - $answers->{'db-name'} = 'rhnsat.world' if not defined $answers->{'db-name'}; + $answers->{'db-name'} = 'rhnsat.world'; $answers->{'db-host'} = 'localhost'; $answers->{'db-port'} = 1521; }
commit 9f89f118716704f5e69af7c8781bf92b58d3b35a Author: Milan Zazrivec mzazrivec@redhat.com Date: Mon Oct 22 16:55:29 2012 +0200
don't pass db-name to upgrade-db.sh
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index c3b9c4a..fbaaf31 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -1253,7 +1253,6 @@ EOQ -err_code => 15, -system_opts => ['/sbin/runuser', 'oracle', '-c', SHARED_DIR . '/oracle/upgrade-db.sh' . - " --db $answers->{'db-name'}" . " --user $answers->{'db-user'}"]);
system_or_exit(['service', 'oracle', 'restart'], 41,
commit 04d35281e913ff4a3e564c0349d80b1554812d76 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:55:26 2012 +0200
We need to add Oracle client bits for external database and embedded Oracle.
diff --git a/satellite/install/install.pl b/satellite/install/install.pl index 9fb2c65..ca37e1f 100755 --- a/satellite/install/install.pl +++ b/satellite/install/install.pl @@ -783,7 +783,8 @@ sub install_rhn_packages {
if (Spacewalk::Setup::is_embedded_db($opts)) { push(@rpms, glob("EmbeddedDB/*.rpm"), glob("PostgreSQL/*.rpm")); - } else { + } + if (not(-d 'PostgreSQL' and Spacewalk::Setup::is_embedded_db($opts))) { push(@rpms, glob("Oracle/*.rpm")); } system_or_exit(['yum', 'localinstall', '-y', @rpms],
commit b2158d59bacc19d4f422a6a33f0e13c918731595 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:55:08 2012 +0200
When not using tnsnames.ora, the full service name has to be used.
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index a68792d..c3b9c4a 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -1234,7 +1234,7 @@ sub oracle_setup_embedded_db { } else { $answers->{'db-user'} = 'rhnsat' if not defined $answers->{'db-user'}; $answers->{'db-password'} = 'rhnsat' if not defined $answers->{'db-password'}; - $answers->{'db-name'} = 'rhnsat' if not defined $answers->{'db-name'}; + $answers->{'db-name'} = 'rhnsat.world' if not defined $answers->{'db-name'}; $answers->{'db-host'} = 'localhost'; $answers->{'db-port'} = 1521; } @@ -1304,7 +1304,7 @@ EOQ -log_file_size => DB_INSTALL_LOG_SIZE, -err_message => "Could not install database.\n", -err_code => 15, - -system_opts => [ SHARED_DIR . "/oracle/install-db.sh", "--db", $answers->{'db-name'}, + -system_opts => [ SHARED_DIR . "/oracle/install-db.sh", "--user", $answers->{'db-user'}, "--password", $answers->{'db-password'}]);
print loc("** Database: Installation complete.\n");
commit 979de4e04009a5513b940ddf2cd47c2a39e12de2 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:54:31 2012 +0200
Revert oracle_setup_embedded_db part of "added embedded postgresql installation part"
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index c89ab8d..a68792d 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -1206,6 +1206,7 @@ sub oracle_setup_db { oracle_check_for_users_and_groups($opts);
print loc("* Setting up database.\n"); + oracle_setup_embedded_db($opts, $answers); oracle_setup_db_connection($opts, $answers); oracle_test_db_settings($opts, $answers); write_rhn_conf($answers, 'db-backend', 'db-name', 'db-user', 'db-password'); @@ -1224,6 +1225,96 @@ sub oracle_check_for_users_and_groups { } }
+sub oracle_setup_embedded_db { + my $opts = shift; + my $answers = shift; + + if (not is_embedded_db($opts)) { + return 0; + } else { + $answers->{'db-user'} = 'rhnsat' if not defined $answers->{'db-user'}; + $answers->{'db-password'} = 'rhnsat' if not defined $answers->{'db-password'}; + $answers->{'db-name'} = 'rhnsat' if not defined $answers->{'db-name'}; + $answers->{'db-host'} = 'localhost'; + $answers->{'db-port'} = 1521; + } + + + if ($opts->{'upgrade'}) { + printf loc(<<EOQ, DB_UPGRADE_LOG_FILE); +** Database: Upgrading the database server to latest Oracle 10g: +** Database: This is a long process that is logged in: +** Database: %s +EOQ + print_progress(-init_message => "*** Progress: #", + -log_file_name => DB_UPGRADE_LOG_FILE, + -log_file_size => DB_UPGRADE_LOG_SIZE, + -err_message => "Could not upgrade database.\n", + -err_code => 15, + -system_opts => ['/sbin/runuser', 'oracle', '-c', + SHARED_DIR . '/oracle/upgrade-db.sh' . + " --db $answers->{'db-name'}" . + " --user $answers->{'db-user'}"]); + + system_or_exit(['service', 'oracle', 'restart'], 41, + 'Could not restart oracle service'); + + return 0; + } + + if ($opts->{"skip-db-install"} || $opts->{"upgrade"}) { + print loc("** Database: Embedded database installation SKIPPED.\n"); + + return 0; + } + + if (-d "/rhnsat/data") { + my $shared_dir = SHARED_DIR; + print loc(<<EOQ); +The embedded database appears to be already installed. Either rerun +this script with the --skip-db-install option, or use the +'$shared_dir/oracle/remove-db.sh' script to remove the embedded database and try +again. +EOQ + + exit 13; + } + + if (not $opts->{"skip-db-diskspace-check"}) { + system_or_exit(['python', SHARED_DIR . + '/embedded_diskspace_check.py'], 14, + 'There is not enough space available for the embedded database.'); + } + else { + print loc("** Database: Embedded database diskspace check SKIPPED!\n"); + } + + printf loc(<<EOQ, DB_INSTALL_LOG_FILE); +** Database: Installing the database: +** Database: This is a long process that is logged in: +** Database: %s +EOQ + + if (have_selinux()) { + local *X; open X, '>', DB_INSTALL_LOG_FILE and close X; + system('/sbin/restorecon', DB_INSTALL_LOG_FILE); + } + print_progress(-init_message => "*** Progress: #", + -log_file_name => DB_INSTALL_LOG_FILE, + -log_file_size => DB_INSTALL_LOG_SIZE, + -err_message => "Could not install database.\n", + -err_code => 15, + -system_opts => [ SHARED_DIR . "/oracle/install-db.sh", "--db", $answers->{'db-name'}, + "--user", $answers->{'db-user'}, "--password", $answers->{'db-password'}]); + + print loc("** Database: Installation complete.\n"); + + sleep(5); # We need to sleep because sometimes the database doesn't + # come back up fast enough. + + return 1; +} + sub oracle_setup_db_connection { my $opts = shift; my $answers = shift;
commit ce19bc03e37ade4607d322b7575f8859c4334ec9 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:53:45 2012 +0200
In the embedded case, install whatever bits we find on the ISO.
diff --git a/satellite/install/install.pl b/satellite/install/install.pl index 10cbb3b..9fb2c65 100755 --- a/satellite/install/install.pl +++ b/satellite/install/install.pl @@ -782,7 +782,7 @@ sub install_rhn_packages { my @rpms = glob("Satellite/*.rpm");
if (Spacewalk::Setup::is_embedded_db($opts)) { - push(@rpms, glob("PostgreSQL/*.rpm")); + push(@rpms, glob("EmbeddedDB/*.rpm"), glob("PostgreSQL/*.rpm")); } else { push(@rpms, glob("Oracle/*.rpm")); }
commit 444b05dba0cbb400eb059b478cfa4b29f5910020 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:52:49 2012 +0200
It is the migration (to PostgreSQL) part which leads to removal of the Oracle client bits.
diff --git a/satellite/install/install.pl b/satellite/install/install.pl index 2af4193..10cbb3b 100755 --- a/satellite/install/install.pl +++ b/satellite/install/install.pl @@ -496,11 +496,8 @@ sub remove_obsoleted_packages { push @pkgs, 'rhn-java-sat'; }
- if (Spacewalk::Setup::is_embedded_db($opts)) { - push @pkgs, 'spacewalk-oracle', 'perl-NOCpulse-Probe-Oracle', 'NOCpulsePlugins-Oracle'; - } - if (Spacewalk::Setup::is_db_migration()) { + push @pkgs, 'spacewalk-oracle', 'perl-NOCpulse-Probe-Oracle', 'NOCpulsePlugins-Oracle'; push @pkgs, 'oracle-instantclient-sqlplus'; push @pkgs, 'oracle-instantclient-sqlplus-selinux'; }
commit 0c26a27bb0aee3331d0733bdc22986b67e71b2c6 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:52:02 2012 +0200
Support three possible scenarios.
diff --git a/satellite/install/install.pl b/satellite/install/install.pl index d63bdb4..2af4193 100755 --- a/satellite/install/install.pl +++ b/satellite/install/install.pl @@ -648,9 +648,13 @@ sub get_required_rpms { my $NEEDRPMS_FILE = 'updates/rhelrpms'; my @NEEDRPMS_FILES = ($NEEDRPMS_FILE); if (Spacewalk::Setup::is_embedded_db($opts)) { - push @NEEDRPMS_FILES, "$NEEDRPMS_FILE.postgresql"; - } else { - push @NEEDRPMS_FILES, "$NEEDRPMS_FILE.oracle"; + if (-d 'PostgreSQL') { + push @NEEDRPMS_FILES, "$NEEDRPMS_FILE.postgresql"; + } elsif (-d 'EmbeddedDB') { + push @NEEDRPMS_FILES, "$NEEDRPMS_FILE.oracle"; + } + } else { # this is external database, meaning Oracle + push @NEEDRPMS_FILES, "$NEEDRPMS_FILE.external-oracle"; } for my $f (@NEEDRPMS_FILES) { open FH, $f
commit ee0593e1673d259a4d57cb3f7f17b2692de12a3e Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:51:27 2012 +0200
Installation is with embedded database if not told otherwise.
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index 859805c..c89ab8d 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -206,12 +206,10 @@ sub load_answer_file { return; }
-# Check if we're installing with an embedded database. Check for existence of -# an "PostgreSQL" directory beneath the dir we're running from (i.e. -# installing from ISO) +# Check if we're installing with an embedded database. sub is_embedded_db { my $opts = shift; - return (-d 'PostgreSQL' and not defined($opts->{'external-db'}) ? 1 : 0 ); + return not defined($opts->{'external-db'}); }
# Return 1 in case setup should also migrate from embedded oracle -> embedded postgresql
commit bae4521e6c086b7fb85dccab1437ac81042eea53 Author: Jan Pazdziora jpazdziora@redhat.com Date: Mon Oct 22 16:50:47 2012 +0200
No migration if the ISO has embedded Oracle software.
diff --git a/spacewalk/setup/lib/Spacewalk/Setup.pm b/spacewalk/setup/lib/Spacewalk/Setup.pm index a892807..859805c 100644 --- a/spacewalk/setup/lib/Spacewalk/Setup.pm +++ b/spacewalk/setup/lib/Spacewalk/Setup.pm @@ -216,6 +216,7 @@ sub is_embedded_db {
# Return 1 in case setup should also migrate from embedded oracle -> embedded postgresql sub is_db_migration { + return 0 if not -d 'PostgreSQL'; foreach my $rpm ('oracle-server-i386', 'oracle-server-x86_64', 'oracle-server-s390x') { system("rpm -q $rpm >& /dev/null"); if ($? >> 8 == 0) {