Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make 'upgrade_to_pretty_name' an Elevate::OS key #511

Merged
merged 2 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 49 additions & 38 deletions elevate-cpanel
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,6 @@ BEGIN { # Suppress load of all of these at earliest point.
BEGIN {
my @_DELEGATE_TO_CPEV = qw{
getopt
upgrade_to_pretty_name
should_run_distro_upgrade
ssystem
ssystem_capture_output
Expand Down Expand Up @@ -639,7 +638,7 @@ BEGIN { # Suppress load of all of these at earliest point.

return 0 if length $db_version && $db_version >= 55;

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
$db_type = Elevate::Database::pretty_type_name($db_type);

$db_version =~ s/([0-9])$/\.$1/;
Expand Down Expand Up @@ -668,7 +667,7 @@ BEGIN { # Suppress load of all of these at earliest point.
return 0;
}

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
$db_type = Elevate::Database::get_database_type_name_from_version($db_version);
my $upgrade_version = Elevate::Database::get_default_upgrade_version();
my $upgrade_dbtype_name = Elevate::Database::get_database_type_name_from_version($upgrade_version);
Expand Down Expand Up @@ -753,6 +752,8 @@ BEGIN { # Suppress load of all of these at earliest point.

use Cpanel::SafeRun::Simple ();

use Elevate::OS ();

# use Elevate::Blockers::Base();
our @ISA;
BEGIN { push @ISA, qw(Elevate::Blockers::Base); }
Expand Down Expand Up @@ -821,7 +822,7 @@ BEGIN { # Suppress load of all of these at earliest point.

my $details = join( "\n", @errors );

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

my $error = <<"EOS";
** Warning **: your system does not have enough disk space available to update to $pretty_distro_name
Expand Down Expand Up @@ -881,7 +882,7 @@ EOS
sub _blocker_is_old_centos7 ($self) {

if ( Cpanel::OS::minor() < MINIMUM_CENTOS_7_SUPPORTED ) { ## no critic(Cpanel::CpanelOS)
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
return $self->has_blocker(
sprintf(
'You need to run CentOS 7.%s and later to upgrade %s. You are currently using %s', #
Expand Down Expand Up @@ -918,6 +919,7 @@ EOS
use cPstrict;

use Elevate::Constants ();
use Elevate::OS ();

# use Elevate::Blockers::Base();
our @ISA;
Expand All @@ -944,7 +946,7 @@ EOS
sub _blocker_non_bind_powerdns ( $self, $nameserver = '' ) {

if ( $nameserver eq 'nsd' or $nameserver eq 'mydns' ) {
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
return $self->has_blocker( <<~"EOS");
$pretty_distro_name only supports bind or powerdns. We suggest you switch to powerdns.
Before upgrading, we suggest you run: /scripts/setupnameserver powerdns.
Expand All @@ -966,6 +968,7 @@ EOS

use Elevate::Constants ();
use Elevate::EA4 ();
use Elevate::OS ();
use Elevate::StageFile ();

use Cpanel::JSON ();
Expand All @@ -990,7 +993,7 @@ EOS

sub _blocker_ea4_profile ($self) {

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

INFO("Checking EasyApache profile compatibility with $pretty_distro_name.");

Expand Down Expand Up @@ -1339,6 +1342,7 @@ EOS
use cPstrict;

use Elevate::Constants ();
use Elevate::OS ();

use Cpanel::JSON ();

Expand All @@ -1363,7 +1367,7 @@ EOS

if ( !ref $license_data->{license} || !$license_data->{license}->{status} ) {

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
return $self->has_blocker( <<~"EOS");
The Imunify license is reporting that it is not currently valid. Since
Imunify is installed on this system, a valid Imunify license is required
Expand Down Expand Up @@ -1430,6 +1434,7 @@ EOS
use cPstrict;

use Elevate::Constants ();
use Elevate::OS ();

# use Elevate::Blockers::Base();
our @ISA;
Expand All @@ -1450,7 +1455,7 @@ EOS

return 0 unless $self->_use_jetbackup4_or_earlier();

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

return $self->has_blocker( <<~"END" );
$pretty_distro_name does not support JetBackup prior to version 5.
Expand Down Expand Up @@ -1542,6 +1547,7 @@ EOS

use Elevate::Constants ();
use Elevate::NICs ();
use Elevate::OS ();

# use Elevate::Blockers::Base();
our @ISA;
Expand Down Expand Up @@ -1577,7 +1583,7 @@ EOS

return if $self->_nics_have_missing_ifcfg_files(@eths);

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
WARN( <<~"EOS" );
Prior to elevating this system to $pretty_distro_name, we will
automatically rename these interfaces.
Expand Down Expand Up @@ -2290,6 +2296,7 @@ EOS

use Elevate::Constants ();
use Elevate::Notify ();
use Elevate::OS ();

use Cpanel::Backup::Sync ();
use Cpanel::Version::Tiny ();
Expand Down Expand Up @@ -2343,7 +2350,7 @@ EOS
sub _blocker_is_newer_than_lts ($self) {
my $major = $Cpanel::Version::Tiny::major_version;
if ( $major <= Elevate::Constants::MINIMUM_LTS_SUPPORTED - 2 || $major > Elevate::Constants::MAXIMUM_LTS_SUPPORTED ) {
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
return $self->has_blocker(
sprintf(
"This version %s does not support upgrades to %s. Please ensure the cPanel version is %s.",
Expand Down Expand Up @@ -2600,7 +2607,6 @@ EOS
BEGIN {
my @_DELEGATE_TO_CPEV = qw{
getopt
upgrade_to_pretty_name
should_run_distro_upgrade
ssystem
ssystem_and_die
Expand Down Expand Up @@ -3482,6 +3488,7 @@ EOS
use cPstrict;

use Elevate::Constants ();
use Elevate::OS ();
use Elevate::StageFile ();

use Cwd ();
Expand Down Expand Up @@ -3582,7 +3589,7 @@ EOS
if ( !$detected ) {

my $stage = Elevate::Stages::get_stage();
my $pretty_distro_name = $self->cpev->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
my $msg = <<"EOS";
The elevation process failed during stage $stage.

Expand Down Expand Up @@ -4290,6 +4297,7 @@ EOS
use cPstrict;

use Elevate::Constants ();
use Elevate::OS ();

use Cwd ();

Expand Down Expand Up @@ -4320,7 +4328,7 @@ EOS
return unless @kernel_rpms;
chomp @kernel_rpms;

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

my $msg = "The following kernels should probably be removed as they will not function on $pretty_distro_name:\n\n";
foreach my $kernel (@kernel_rpms) {
Expand Down Expand Up @@ -4942,6 +4950,7 @@ EOS

use Elevate::Constants ();
use Elevate::Notify ();
use Elevate::OS ();
use Elevate::StageFile ();

use Config;
Expand Down Expand Up @@ -5008,7 +5017,7 @@ EOS
}
}

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

my $stash = {};
if (%rpms_to_restore) {
Expand Down Expand Up @@ -5376,6 +5385,8 @@ EOS

use cPstrict;

use Elevate::OS ();

# use Log::Log4perl qw(:easy);
INIT { Log::Log4perl->import(qw{:easy}); }

Expand Down Expand Up @@ -5420,7 +5431,7 @@ EOS

return unless @exclude_kernel_el7_installed_packages;

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

my $msg = "The following packages should probably be removed as they will not function on $pretty_distro_name\n\n";
foreach my $pkg (@exclude_kernel_el7_installed_packages) {
Expand Down Expand Up @@ -6336,6 +6347,7 @@ EOS
'provides_mysql_governor', # This is used to determine if the OS provides the governor-mysql package
'remove_els', # This is used to indicate if we are to remove ELS for this OS
'should_check_cloudlinux_license', # This is used to determine if we should check the cloudlinux license
'upgrade_to_pretty_name', # Returns the pretty name of the OS we are upgrading to (i.e. 'Ubuntu 22')
'vetted_mysql_yum_repo_ids', # This is a list of known mysql yum repo ids
'vetted_yum_repo', # This is a list of known yum repos that we do not block on
);
Expand Down Expand Up @@ -6388,14 +6400,15 @@ EOS
our @ISA;
BEGIN { push @ISA, qw(Elevate::OS::RHEL); }

use constant default_upgrade_to => 'AlmaLinux';
use constant ea_alias => 'CentOS_8';
use constant elevate_rpm_url => 'https://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm';
use constant leapp_data_pkg => 'leapp-data-almalinux';
use constant leapp_repo_prod => 'elevate';
use constant name => 'CentOS7';
use constant pretty_name => 'CentOS 7';
use constant remove_els => 1;
use constant default_upgrade_to => 'AlmaLinux';
use constant ea_alias => 'CentOS_8';
use constant elevate_rpm_url => 'https://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm';
use constant leapp_data_pkg => 'leapp-data-almalinux';
use constant leapp_repo_prod => 'elevate';
use constant name => 'CentOS7';
use constant pretty_name => 'CentOS 7';
use constant remove_els => 1;
use constant upgrade_to_pretty_name => 'AlmaLinux 8';

sub vetted_yum_repo ($self) {

Expand Down Expand Up @@ -6435,6 +6448,7 @@ EOS
use constant pretty_name => 'CloudLinux 7';
use constant provides_mysql_governor => 1;
use constant should_check_cloudlinux_license => 1;
use constant upgrade_to_pretty_name => 'CloudLinux 8';

sub vetted_yum_repo ($self) {
my @vetted_cloudlinux_yum_repo = (
Expand Down Expand Up @@ -7888,6 +7902,7 @@ EOS
use Cpanel::RestartSrv::Systemd ();

use Elevate::Constants ();
use Elevate::OS ();

# use Log::Log4perl qw(:easy);
INIT { Log::Log4perl->import(qw{:easy}); }
Expand Down Expand Up @@ -7930,16 +7945,17 @@ EOS

sub install ($self) {

my $pretty_distro_name = $self->cpev->upgrade_to_pretty_name();
my $upgrade_from = Elevate::OS::pretty_name();
my $upgrade_to = Elevate::OS::upgrade_to_pretty_name();

my $name = $self->name;

INFO( "Installing service $name which will upgrade the server to " . $pretty_distro_name );
INFO( "Installing service $name which will upgrade the server to " . $upgrade_to );
open( my $fh, '>', $self->file ) or die;

print {$fh} <<~"EOF";
[Unit]
Description=Upgrade process from CentOS 7 to $pretty_distro_name.
Description=Upgrade process from $upgrade_from to $upgrade_to.
After=network.target network-online.target

[Service]
Expand Down Expand Up @@ -9018,11 +9034,6 @@ sub do_update ($self) {
return 0;
}

sub upgrade_to_pretty_name ($self) { # used by output messages
return q[CloudLinux 8] if Elevate::OS::default_upgrade_to() eq 'CloudLinux';
return q[AlmaLinux 8];
}

sub monitor_upgrade ($self) {
my $stage = Elevate::Stages::get_stage();

Expand Down Expand Up @@ -9115,7 +9126,7 @@ sub _capture_env_variables ($self) {
sub give_last_chance ($self) {

my $upgrade_from_name = Elevate::OS::pretty_name();
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

print_box(qq[/!\ Warning: You are about to convert your cPanel & WHM $upgrade_from_name to $pretty_distro_name server.]);

Expand Down Expand Up @@ -9317,7 +9328,7 @@ sub check_status ($self) {
sub _notify_success ($self) {

my $upgrade_from_name = Elevate::OS::pretty_name();
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();

my $msg = <<"EOS";
The cPanel & WHM server has completed the elevation process from $upgrade_from_name to $pretty_distro_name.
Expand Down Expand Up @@ -9359,7 +9370,7 @@ $error

EOS

my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
Elevate::Notify::send_notification( qq[Failed to update to $pretty_distro_name] => $msg );

return;
Expand Down Expand Up @@ -9612,7 +9623,7 @@ sub run_stage_4 ($self) {
}

if ( Cpanel::OS::major() != 8 ) { ## no critic(Cpanel::CpanelOS)
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
my $current_distro = Cpanel::OS::pretty_distro();

if ( Cpanel::OS::major() == 7 ) { ## no critic(Cpanel::CpanelOS)
Expand Down Expand Up @@ -9714,7 +9725,7 @@ sub run_stage_5 ($self) {
$self->ssystem(qw{/usr/bin/dnf -y --allowerasing update});

Elevate::Motd->cleanup();
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
print_box("Great SUCCESS! Your upgrade to $pretty_distro_name is complete.");

return ACTION_REBOOT_NEEDED;
Expand Down Expand Up @@ -10010,7 +10021,7 @@ sub post_upgrade_check ($self) {
$expect_distro = lc $expect_distro;

unless ( Cpanel::OS::major() == 8 && Cpanel::OS::distro() eq $expect_distro ) { ## no critic(Cpanel::CpanelOS)
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
die "Your distro does not look like $pretty_distro_name.\n";
}

Expand Down
1 change: 0 additions & 1 deletion lib/Elevate/Blockers/Base.pm
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ sub cpev ($self) {
BEGIN {
my @_DELEGATE_TO_CPEV = qw{
getopt
upgrade_to_pretty_name
should_run_distro_upgrade
ssystem
ssystem_capture_output
Expand Down
3 changes: 2 additions & 1 deletion lib/Elevate/Blockers/DNS.pm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Blocker to check if the DNS server is supported.
use cPstrict;

use Elevate::Constants ();
use Elevate::OS ();

use parent qw{Elevate::Blockers::Base};

Expand All @@ -35,7 +36,7 @@ sub _get_nameserver_type () {
sub _blocker_non_bind_powerdns ( $self, $nameserver = '' ) {

if ( $nameserver eq 'nsd' or $nameserver eq 'mydns' ) {
my $pretty_distro_name = $self->upgrade_to_pretty_name();
my $pretty_distro_name = Elevate::OS::upgrade_to_pretty_name();
return $self->has_blocker( <<~"EOS");
$pretty_distro_name only supports bind or powerdns. We suggest you switch to powerdns.
Before upgrading, we suggest you run: /scripts/setupnameserver powerdns.
Expand Down
Loading
Loading