Skip to content

Commit 12467cf

Browse files
authored
Merge pull request #178 from bocekm/fix_downloading_same_version_kernel_from_rhsm
Use RHSM repos for downloading same version kernel
2 parents 4912c58 + 1db2afe commit 12467cf

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

convert2rhel/pkghandler.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,9 +612,12 @@ def replace_non_rhel_installed_kernel(version):
612612

613613
pkg = "kernel-%s" % version
614614

615+
# For downloading the RHEL kernel we need to use the RHEL repositories. Those are available either through the
616+
# attached subscription (submgr_enabled_repos) or through custom repositories (tool_opts.enablerepo).
617+
repos_to_enable = system_info.submgr_enabled_repos if not tool_opts.disable_submgr else tool_opts.enablerepo
615618
path = utils.download_pkg(
616619
pkg=pkg, dest=utils.TMP_DIR, disable_repos=tool_opts.disablerepo,
617-
enable_repos=tool_opts.enablerepo)
620+
enable_repos=repos_to_enable)
618621
if not path:
619622
loggerinst.critical("Unable to download the RHEL kernel package.")
620623

convert2rhel/unit_tests/pkghandler_test.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -853,17 +853,29 @@ def __call__(self, pkg, dest, enable_repos, disable_repos):
853853
self.disable_repos = disable_repos
854854
return self.to_return
855855

856+
@unit_tests.mock(system_info, "submgr_enabled_repos", ["enabled_rhsm_repo"])
857+
@unit_tests.mock(tool_opts, "enablerepo", []) # to be changed later in the test
858+
@unit_tests.mock(tool_opts, "disable_submgr", False) # to be changed later in the test
856859
@unit_tests.mock(utils, "ask_to_continue", DumbCallableObject())
857860
@unit_tests.mock(utils, "download_pkg", DownloadPkgMocked())
858861
@unit_tests.mock(utils, "run_subprocess", RunSubprocessMocked())
859862
def test_replace_non_rhel_installed_kernel(self):
863+
# test the use case where RHSM is used for the conversion
860864
version = '4.7.4-200.fc24'
861865
pkghandler.replace_non_rhel_installed_kernel(version)
862866
self.assertEqual(utils.download_pkg.called, 1)
863867
self.assertEqual(utils.download_pkg.pkg, "kernel-4.7.4-200.fc24")
868+
self.assertEqual(utils.download_pkg.enable_repos, ["enabled_rhsm_repo"])
864869
self.assertEqual(utils.run_subprocess.cmd,
865870
"rpm -i --force --nodeps --replacepkgs %skernel-4.7.4-200.fc24*" % utils.TMP_DIR)
866871

872+
# test the use case where custom repos are used for the conversion
873+
system_info.submgr_enabled_repos = []
874+
tool_opts.disable_submgr = True
875+
tool_opts.enablerepo = ["custom_repo"]
876+
pkghandler.replace_non_rhel_installed_kernel(version)
877+
self.assertEqual(utils.download_pkg.enable_repos, ["custom_repo"])
878+
867879
@unit_tests.mock(utils, "ask_to_continue", DumbCallableObject())
868880
@unit_tests.mock(utils, "download_pkg", DownloadPkgMocked())
869881
@unit_tests.mock(utils, "run_subprocess", RunSubprocessMocked())

0 commit comments

Comments
 (0)