From 2d63448e4807b087244eb9e69c28251b857be9f7 Mon Sep 17 00:00:00 2001 From: Andrew Lukoshko Date: Mon, 13 Mar 2023 16:33:02 +0100 Subject: [PATCH] Update ELevate patch --- SOURCES/leapp-repository-0.16.0-elevate.patch | 268 ++++++++++++++---- SPECS/leapp-repository.spec | 2 +- 2 files changed, 214 insertions(+), 56 deletions(-) diff --git a/SOURCES/leapp-repository-0.16.0-elevate.patch b/SOURCES/leapp-repository-0.16.0-elevate.patch index 84c240d..0064b33 100644 --- a/SOURCES/leapp-repository-0.16.0-elevate.patch +++ b/SOURCES/leapp-repository-0.16.0-elevate.patch @@ -1061,14 +1061,43 @@ index 0000000..74ba425 + log.debug("Copying repo file {} to {}".format(repofile, REPO_ROOT_PATH)) + + shutil.copy(full_repo_path, REPO_ROOT_PATH) +diff --git a/repos/system_upgrade/cloudlinux/actors/backupmysqldata/actor.py b/repos/system_upgrade/cloudlinux/actors/backupmysqldata/actor.py +new file mode 100644 +index 0000000..8e0f0e2 +--- /dev/null ++++ b/repos/system_upgrade/cloudlinux/actors/backupmysqldata/actor.py +@@ -0,0 +1,22 @@ ++import os ++from leapp.actors import Actor ++from leapp.tags import InterimPreparationPhaseTag, IPUWorkflowTag ++from leapp.libraries.common.cllaunch import run_on_cloudlinux ++from leapp.libraries.common.backup import backup_file, CLSQL_BACKUP_FILES ++ ++ ++class BackupMySqlData(Actor): ++ """ ++ Backup cl-mysql configuration data to an external folder. ++ """ ++ ++ name = 'backup_my_sql_data' ++ consumes = () ++ produces = () ++ tags = (InterimPreparationPhaseTag.Before, IPUWorkflowTag) ++ ++ @run_on_cloudlinux ++ def process(self): ++ for filename in CLSQL_BACKUP_FILES: ++ if os.path.isfile(filename): ++ backup_file(filename, os.path.basename(filename)) diff --git a/repos/system_upgrade/cloudlinux/actors/checkcllicense/actor.py b/repos/system_upgrade/cloudlinux/actors/checkcllicense/actor.py new file mode 100644 -index 0000000..2c935d7 +index 0000000..7934a9c --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/checkcllicense/actor.py -@@ -0,0 +1,41 @@ +@@ -0,0 +1,42 @@ +from leapp.actors import Actor +from leapp import reporting ++from leapp.reporting import Report +from leapp.tags import ChecksPhaseTag, IPUWorkflowTag +from leapp.libraries.stdlib import CalledProcessError, run +from leapp.libraries.common.cllaunch import run_on_cloudlinux @@ -1083,7 +1112,7 @@ index 0000000..2c935d7 + + name = 'check_cl_license' + consumes = () -+ produces = () ++ produces = (Report,) + tags = (ChecksPhaseTag, IPUWorkflowTag) + + system_id_path = '/etc/sysconfig/rhn/systemid' @@ -1361,12 +1390,13 @@ index 0000000..149bce2 + diff --git a/repos/system_upgrade/cloudlinux/actors/checkrhnversionoverride/actor.py b/repos/system_upgrade/cloudlinux/actors/checkrhnversionoverride/actor.py new file mode 100644 -index 0000000..d832d34 +index 0000000..2321bde --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/checkrhnversionoverride/actor.py -@@ -0,0 +1,38 @@ +@@ -0,0 +1,39 @@ +from leapp.actors import Actor +from leapp import reporting ++from leapp.reporting import Report +from leapp.tags import ChecksPhaseTag, IPUWorkflowTag +from leapp.libraries.common.cllaunch import run_on_cloudlinux + @@ -1378,7 +1408,7 @@ index 0000000..d832d34 + + name = 'check_rhn_version_override' + consumes = () -+ produces = () ++ produces = (Report,) + tags = (ChecksPhaseTag, IPUWorkflowTag) + + @run_on_cloudlinux @@ -1387,7 +1417,7 @@ index 0000000..d832d34 + with open(up2date_config, 'r') as f: + config_data = f.readlines() + for line in config_data: -+ if line.startswith('versionOverride=') and line != 'versionOverride=': ++ if line.startswith('versionOverride=') and line.strip() != 'versionOverride=': + title = 'RHN up2date: versionOverride not empty' + summary = ('The RHN config file up2date has a set value of the versionOverride option.' + ' This value will get overwritten by the upgrade process, and non-supported values' @@ -1542,10 +1572,10 @@ index 0000000..4651580 + clmysqlrepositorysetup.process() diff --git a/repos/system_upgrade/cloudlinux/actors/clmysqlrepositorysetup/libraries/clmysqlrepositorysetup.py b/repos/system_upgrade/cloudlinux/actors/clmysqlrepositorysetup/libraries/clmysqlrepositorysetup.py new file mode 100644 -index 0000000..2d73dbb +index 0000000..1d5e4a0 --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/clmysqlrepositorysetup/libraries/clmysqlrepositorysetup.py -@@ -0,0 +1,218 @@ +@@ -0,0 +1,254 @@ +import os + +from leapp.models import ( @@ -1610,13 +1640,14 @@ index 0000000..2d73dbb +def process(): + mysql_types = [] + clmysql_type = None ++ custom_repo_msgs = [] + + for repofile_full in os.listdir(REPO_DIR): + # Don't touch non-repository files or copied repofiles created by Leapp. + if repofile_full.endswith(LEAPP_COPY_SUFFIX) or not repofile_full.endswith(REPOFILE_SUFFIX): + continue + # Cut the .repo part to get only the name. -+ repofile_name = repofile_full[:-5] ++ repofile_name = repofile_full[:-len(REPOFILE_SUFFIX)] + full_repo_path = os.path.join(REPO_DIR, repofile_full) + + # Parse any repository files that may have something to do with MySQL or MariaDB. @@ -1625,7 +1656,12 @@ index 0000000..2d73dbb + # Process CL-provided options. + if any(mark in repofile_name for mark in CL_MARKERS): + repofile_data = repofileutils.parse_repofile(full_repo_path) -+ api.current_logger().debug('Data from repofile: {}'.format(repofile_data.data)) ++ data_to_log = [ ++ (repo_data.repoid, "enabled" if repo_data.enabled else "disabled") ++ for repo_data in repofile_data.data ++ ] ++ ++ api.current_logger().debug('repoids from CloudLinux repofile {}: {}'.format(repofile_name, data_to_log)) + + # Were any repositories enabled? + for repo in repofile_data.data: @@ -1635,15 +1671,14 @@ index 0000000..2d73dbb + repo.repoid = repo.repoid + '-8' + # releasever may be something like 8.6, while only 8 is acceptable. + repo.baseurl = repo.baseurl.replace('/cl$releasever/', '/cl8/') ++ + # mysqlclient is usually disabled when installed from CL MySQL Governor. + # However, it should be enabled for the Leapp upgrade, seeing as some packages + # from it won't update otherwise. -+ + if repo.enabled or repo.repoid == 'mysqclient-8': -+ mysql_types.append('cloudlinux') + clmysql_type = get_clmysql_type() + api.current_logger().debug('Generating custom cl-mysql repo: {}'.format(repo.repoid)) -+ api.produce(CustomTargetRepository( ++ custom_repo_msgs.append(CustomTargetRepository( + repoid=repo.repoid, + name=repo.name, + baseurl=repo.baseurl, @@ -1651,7 +1686,12 @@ index 0000000..2d73dbb + )) + + if any(repo.enabled for repo in repofile_data.data): ++ mysql_types.append('cloudlinux') + produce_leapp_repofile_copy(repofile_data, repofile_name) ++ else: ++ api.current_logger().debug("No repos from CloudLinux repofile {} enabled, ignoring".format( ++ repofile_name ++ )) + + # Process MariaDB options. + elif any(mark in repofile_name for mark in MARIA_MARKERS): @@ -1664,13 +1704,12 @@ index 0000000..2d73dbb + # We want to replace the 7 in OS name after /yum/ + repo.repoid = repo.repoid + '-8' + if repo.enabled: -+ mysql_types.append('mariadb') + url_parts = repo.baseurl.split('yum') + url_parts[1] = 'yum' + url_parts[1].replace('7', '8') + repo.baseurl = ''.join(url_parts) + + api.current_logger().debug('Generating custom MariaDB repo: {}'.format(repo.repoid)) -+ api.produce(CustomTargetRepository( ++ custom_repo_msgs.append(CustomTargetRepository( + repoid=repo.repoid, + name=repo.name, + baseurl=repo.baseurl, @@ -1680,7 +1719,12 @@ index 0000000..2d73dbb + if any(repo.enabled for repo in repofile_data.data): + # Since MariaDB URLs have major versions written in, we need a new repo file + # to feed to the target userspace. ++ mysql_types.append('mariadb') + produce_leapp_repofile_copy(repofile_data, repofile_name) ++ else: ++ api.current_logger().debug("No repos from MariaDB repofile {} enabled, ignoring".format( ++ repofile_name ++ )) + + # Process MySQL options. + elif any(mark in repofile_name for mark in MYSQL_MARKERS): @@ -1688,7 +1732,6 @@ index 0000000..2d73dbb + + for repo in repofile_data.data: + if repo.enabled: -+ mysql_types.append('mysql') + # MySQL package repos don't have these versions available for EL8 anymore. + # There'll be nothing to upgrade to. + # CL repositories do provide them, though. @@ -1718,7 +1761,7 @@ index 0000000..2d73dbb + repo.repoid = repo.repoid + '-8' + repo.baseurl = repo.baseurl.replace('/el/7/', '/el/8/') + api.current_logger().debug('Generating custom MySQL repo: {}'.format(repo.repoid)) -+ api.produce(CustomTargetRepository( ++ custom_repo_msgs.append(CustomTargetRepository( + repoid=repo.repoid, + name=repo.name, + baseurl=repo.baseurl, @@ -1726,28 +1769,51 @@ index 0000000..2d73dbb + )) + + if any(repo.enabled for repo in repofile_data.data): ++ mysql_types.append('mysql') + produce_leapp_repofile_copy(repofile_data, repofile_name) ++ else: ++ api.current_logger().debug("No repos from MySQL repofile {} enabled, ignoring".format( ++ repofile_name ++ )) + + if len(mysql_types) == 0: + api.current_logger().debug('No installed MySQL/MariaDB detected') -+ elif len(mysql_types) == 1: -+ api.current_logger().debug('Detected MySQL/MariaDB type: {}, version: {}'.format(mysql_types[0], clmysql_type)) + else: -+ api.current_logger().warning('Detected multiple MySQL types: {}'.format(", ".join(mysql_types))) + reporting.create_report([ -+ reporting.Title('Multpile MySQL/MariaDB versions detected'), ++ reporting.Title('MySQL database backup recommended'), + reporting.Summary( -+ 'Package repositories for multiple distributions of MySQL/MariaDB ' -+ 'were detected on the system. ' -+ 'Leapp will attempt to update all distributions detected. ' -+ 'To update only the distribution you use, disable YUM package repositories for all ' -+ 'other distributions. ' -+ 'Detected: {0}'.format(", ".join(mysql_types)) ++ 'A MySQL/MariaDB installation has been detected on this machine. ' ++ 'It is recommended to make a database backup before proceeding with the upgrade.' + ), -+ reporting.Severity(reporting.Severity.MEDIUM), -+ reporting.Tags([reporting.Tags.REPOSITORY, reporting.Tags.OS_FACTS]), ++ reporting.Severity(reporting.Severity.HIGH), ++ reporting.Tags([reporting.Tags.REPOSITORY]), + ]) + ++ for msg in custom_repo_msgs: ++ api.produce(msg) ++ ++ if len(mysql_types) == 1: ++ api.current_logger().debug( ++ "Detected MySQL/MariaDB type: {}, version: {}".format( ++ mysql_types[0], clmysql_type ++ ) ++ ) ++ else: ++ api.current_logger().warning('Detected multiple MySQL types: {}'.format(", ".join(mysql_types))) ++ reporting.create_report([ ++ reporting.Title('Multpile MySQL/MariaDB versions detected'), ++ reporting.Summary( ++ 'Package repositories for multiple distributions of MySQL/MariaDB ' ++ 'were detected on the system. ' ++ 'Leapp will attempt to update all distributions detected. ' ++ 'To update only the distribution you use, disable YUM package repositories for all ' ++ 'other distributions. ' ++ 'Detected: {0}'.format(", ".join(mysql_types)) ++ ), ++ reporting.Severity(reporting.Severity.MEDIUM), ++ reporting.Tags([reporting.Tags.REPOSITORY, reporting.Tags.OS_FACTS]), ++ ]) ++ + if 'cloudlinux' in mysql_types and clmysql_type in MODULE_STREAMS.keys(): + mod_name, mod_stream = MODULE_STREAMS[clmysql_type].split(':') + modules_to_enable = [Module(name=mod_name, stream=mod_stream)] @@ -1825,13 +1891,14 @@ index 0000000..4eed3ec + ) diff --git a/repos/system_upgrade/cloudlinux/actors/enableyumspacewalkplugin/actor.py b/repos/system_upgrade/cloudlinux/actors/enableyumspacewalkplugin/actor.py new file mode 100644 -index 0000000..1e353b1 +index 0000000..95fcce9 --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/enableyumspacewalkplugin/actor.py -@@ -0,0 +1,55 @@ +@@ -0,0 +1,56 @@ +from leapp.actors import Actor +from leapp.tags import FirstBootPhaseTag, IPUWorkflowTag +from leapp import reporting ++from leapp.reporting import Report +from leapp.libraries.common.cllaunch import run_on_cloudlinux + +try: @@ -1852,7 +1919,7 @@ index 0000000..1e353b1 + + name = 'enable_yum_spacewalk_plugin' + consumes = () -+ produces = () ++ produces = (Report,) + tags = (FirstBootPhaseTag, IPUWorkflowTag) + + config = '/etc/yum/pluginconf.d/spacewalk.conf' @@ -1957,10 +2024,10 @@ index 0000000..358403b + ) diff --git a/repos/system_upgrade/cloudlinux/actors/replacerpmnewconfigs/actor.py b/repos/system_upgrade/cloudlinux/actors/replacerpmnewconfigs/actor.py new file mode 100644 -index 0000000..209d933 +index 0000000..4ddb755 --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/replacerpmnewconfigs/actor.py -@@ -0,0 +1,64 @@ +@@ -0,0 +1,65 @@ +from __future__ import print_function +import os +import fileinput @@ -2001,6 +2068,7 @@ index 0000000..209d933 + os.rename(new_file_path, base_path) + renamed_repofiles.append(base_reponame) + ++ # Disable any old repositories. + for reponame in os.listdir(REPO_DIR): + if LEAPP_BACKUP_SUFFIX in reponame: + repofile_path = os.path.join(REPO_DIR, reponame) @@ -2056,6 +2124,34 @@ index 0000000..21b2164 + line = 'versionOverride=' + with open(up2date_config, 'w') as f: + f.writelines(config_data) +diff --git a/repos/system_upgrade/cloudlinux/actors/restoremysqldata/actor.py b/repos/system_upgrade/cloudlinux/actors/restoremysqldata/actor.py +new file mode 100644 +index 0000000..d1ec819 +--- /dev/null ++++ b/repos/system_upgrade/cloudlinux/actors/restoremysqldata/actor.py +@@ -0,0 +1,22 @@ ++import os ++from leapp.actors import Actor ++from leapp.tags import ThirdPartyApplicationsPhaseTag, IPUWorkflowTag ++from leapp.libraries.common.cllaunch import run_on_cloudlinux ++from leapp.libraries.common.backup import restore_file, CLSQL_BACKUP_FILES ++ ++ ++class RestoreMySqlData(Actor): ++ """ ++ Restore cl-mysql configuration data from an external folder. ++ """ ++ ++ name = 'restore_my_sql_data' ++ consumes = () ++ produces = () ++ tags = (ThirdPartyApplicationsPhaseTag, IPUWorkflowTag) ++ ++ @run_on_cloudlinux ++ def process(self): ++ for filename in CLSQL_BACKUP_FILES: ++ if os.path.isfile(filename): ++ restore_file(filename, os.path.basename(filename)) diff --git a/repos/system_upgrade/cloudlinux/actors/scancontrolpanel/actor.py b/repos/system_upgrade/cloudlinux/actors/scancontrolpanel/actor.py new file mode 100644 index 0000000..96524ed @@ -2182,16 +2278,17 @@ index 0000000..0a059f1 + api.produce(CustomTargetRepositoryFile(file=full_repo_path)) diff --git a/repos/system_upgrade/cloudlinux/actors/switchclnchannel/actor.py b/repos/system_upgrade/cloudlinux/actors/switchclnchannel/actor.py new file mode 100644 -index 0000000..784075a +index 0000000..79eb3e4 --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/switchclnchannel/actor.py -@@ -0,0 +1,58 @@ +@@ -0,0 +1,59 @@ +from leapp.actors import Actor +from leapp.libraries.stdlib import api +from leapp.tags import DownloadPhaseTag, IPUWorkflowTag +from leapp.libraries.stdlib import CalledProcessError, run +from leapp.libraries.common.cllaunch import run_on_cloudlinux +from leapp import reporting ++from leapp.reporting import Report + + +class SwitchClnChannel(Actor): @@ -2201,7 +2298,7 @@ index 0000000..784075a + + name = "switch_cln_channel" + consumes = () -+ produces = () ++ produces = (Report,) + tags = (IPUWorkflowTag, DownloadPhaseTag.Before) + + switch_bin = "/usr/sbin/cln-switch-channel" @@ -2246,16 +2343,15 @@ index 0000000..784075a + ) diff --git a/repos/system_upgrade/cloudlinux/actors/updatecagefs/actor.py b/repos/system_upgrade/cloudlinux/actors/updatecagefs/actor.py new file mode 100644 -index 0000000..71e3c66 +index 0000000..c6590d2 --- /dev/null +++ b/repos/system_upgrade/cloudlinux/actors/updatecagefs/actor.py -@@ -0,0 +1,36 @@ +@@ -0,0 +1,37 @@ +import os + +from leapp.actors import Actor +from leapp.libraries.stdlib import run, CalledProcessError +from leapp.reporting import Report, create_report -+from leapp import reporting +from leapp.tags import FirstBootPhaseTag, IPUWorkflowTag +from leapp.libraries.common.cllaunch import run_on_cloudlinux + @@ -2269,7 +2365,7 @@ index 0000000..71e3c66 + + name = 'update_cagefs' + consumes = () -+ produces = () ++ produces = (Report,) + tags = (FirstBootPhaseTag, IPUWorkflowTag) + + @run_on_cloudlinux @@ -2281,11 +2377,68 @@ index 0000000..71e3c66 + except CalledProcessError as e: + # cagefsctl prints errors in stdout + self.log.error(e.stdout) -+ self.log.error('Command "cagefsctl --force-update" finished with exit code {}, ' ++ self.log.error ++ ( ++ 'Command "cagefsctl --force-update" finished with exit code {}, ' + 'the filesystem inside cagefs may be out-of-date.\n' + 'Check cagefsctl output above and in /var/log/cagefs-update.log, ' + 'rerun "cagefsctl --force-update" after fixing the issues.'.format(e.exit_code) + ) +diff --git a/repos/system_upgrade/cloudlinux/libraries/backup.py b/repos/system_upgrade/cloudlinux/libraries/backup.py +new file mode 100644 +index 0000000..249c99e +--- /dev/null ++++ b/repos/system_upgrade/cloudlinux/libraries/backup.py +@@ -0,0 +1,49 @@ ++import os ++import shutil ++from leapp.libraries.stdlib import api ++ ++CLSQL_BACKUP_FILES = [ ++ "/etc/container/dbuser-map", ++ "/etc/container/ve.cfg", ++ "/etc/container/mysql-governor.xml", ++ "/etc/container/governor_package_limit.json" ++] ++ ++BACKUP_DIR = "/var/lib/leapp/cl_backup" ++ ++ ++def backup_file(source, destination, dir=None): ++ # type: (str, str, str) -> None ++ """ ++ Backup file to a backup directory. ++ ++ :param source: Path of the file to backup. ++ :param destination: Destination name of a file in the backup directory. ++ :param dir: Backup directory override, defaults to None ++ """ ++ if not dir: ++ dir = BACKUP_DIR ++ if not os.path.isdir(dir): ++ os.makedirs(dir) ++ ++ dest_path = os.path.join(dir, destination) ++ ++ api.current_logger().debug('Backing up file: {} to {}'.format(source, dest_path)) ++ shutil.copy(source, dest_path) ++ ++ ++def restore_file(source, destination, dir=None): ++ # type: (str, str, str) -> None ++ """ ++ Restore file from a backup directory. ++ ++ :param source: Name of a file in the backup directory. ++ :param destination: Destination path to restore the file to. ++ :param dir: Backup directory override, defaults to None ++ """ ++ if not dir: ++ dir = BACKUP_DIR ++ src_path = os.path.join(dir, source) ++ ++ api.current_logger().debug('Restoring file: {} to {}'.format(src_path, destination)) ++ shutil.copy(src_path, destination) diff --git a/repos/system_upgrade/cloudlinux/libraries/cllaunch.py b/repos/system_upgrade/cloudlinux/libraries/cllaunch.py new file mode 100644 index 0000000..6cbab5d @@ -2590,10 +2743,10 @@ index 14bd6e3..f6adacf 100755 # stability, but check is better than broken system. diff --git a/repos/system_upgrade/common/actors/detectwebservers/actor.py b/repos/system_upgrade/common/actors/detectwebservers/actor.py new file mode 100644 -index 0000000..d600eb2 +index 0000000..ac79714 --- /dev/null +++ b/repos/system_upgrade/common/actors/detectwebservers/actor.py -@@ -0,0 +1,48 @@ +@@ -0,0 +1,53 @@ +from leapp.actors import Actor +from leapp import reporting +from leapp.reporting import Report @@ -2630,9 +2783,14 @@ index 0000000..d600eb2 + "A web server is present on the system." + " Depending on the source of installation, " + " it may not upgrade to the new version correctly," -+ " since not all varoants are currently supported by Leapp." -+ " Please check the list of packages that won't be upgraded in the report." -+ " Alternatively, upgrade the webserver manually after the process finishes." ++ " since not all installation configurations are currently supported by Leapp." ++ " Failing to upgrade the webserver may result in it malfunctioning" ++ " after the upgrade process finishes." ++ " Please review the list of packages that won't be upgraded in the report." ++ " If the web server packages are present in the list of packages that won't be upgraded," ++ " expect the server to be non-functional on the post-upgrade system." ++ " You may still continue with the upgrade, but you'll need to" ++ " upgrade the web server manually after the process finishes." + " Detected webserver: {}.".format(server_name) + ), + reporting.Severity(reporting.Severity.HIGH), @@ -4418,7 +4576,7 @@ index 6a2f5aa..51030fd 100644 mount_names = [mount_point.fs_file for mount_point in mount_points] diff --git a/repos/system_upgrade/common/libraries/repofileutils.py b/repos/system_upgrade/common/libraries/repofileutils.py -index a3f111b..4f7ea91 100644 +index a3f111b..26e4d3e 100644 --- a/repos/system_upgrade/common/libraries/repofileutils.py +++ b/repos/system_upgrade/common/libraries/repofileutils.py @@ -26,6 +26,18 @@ def _parse_repository(repoid, repo_data): @@ -4454,7 +4612,7 @@ index a3f111b..4f7ea91 100644 + :type repofile_path: str + """ + with open(repofile_path, mode='w') as fp: -+ cp = utils.create_config(repodata) ++ cp = utils.create_parser() + _prepare_config(repodata, cp) + cp.write(fp) + @@ -4629,14 +4787,14 @@ index b7e4b21..dc038bf 100644 def with_rhsm(f): diff --git a/repos/system_upgrade/common/libraries/utils.py b/repos/system_upgrade/common/libraries/utils.py -index 6793de6..8a38723 100644 +index 6793de6..d201677 100644 --- a/repos/system_upgrade/common/libraries/utils.py +++ b/repos/system_upgrade/common/libraries/utils.py @@ -43,6 +43,14 @@ def parse_config(cfg=None, strict=True): return parser -+def create_config(repodata): ++def create_parser(strict=True): + if six.PY3: + parser = six.moves.configparser.ConfigParser(strict=strict) # pylint: disable=unexpected-keyword-arg + else: @@ -4962,7 +5120,7 @@ index 923bf80..9972204 100755 print("{} processed, {} changed, {} errors".format(processed, changed, errors)) diff --git a/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/actor.py b/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/actor.py -index f13a767..0ca198f 100644 +index f13a767..2e3412d 100644 --- a/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/actor.py +++ b/repos/system_upgrade/el7toel8/actors/opensshpermitrootlogincheck/actor.py @@ -1,7 +1,7 @@ @@ -5002,8 +5160,8 @@ index f13a767..0ca198f 100644 + 'to log onto this machine after the upgrade. ' + 'To prevent this from occuring, the PermitRootLogin option ' + 'has been explicity set to "yes" to preserve the default behaivour ' -+ 'after migration.' -+ 'The original configuration file has been backed up to' ++ 'after migration. ' ++ 'The original configuration file has been backed up to ' + '/etc/ssh/sshd_config.leapp_backup' ), - reporting.Severity(reporting.Severity.HIGH), diff --git a/SPECS/leapp-repository.spec b/SPECS/leapp-repository.spec index a9575f9..9c5d64b 100644 --- a/SPECS/leapp-repository.spec +++ b/SPECS/leapp-repository.spec @@ -43,7 +43,7 @@ py2_byte_compile "%1" "%2"} Epoch: 1 Name: leapp-repository Version: 0.16.0 -Release: 6%{?dist}.elevate.8 +Release: 6%{?dist}.elevate.9 Summary: Repositories for leapp License: ASL 2.0