示例#1
0
def pre_ponr_conversion():
    """Perform steps and checks to guarantee system is ready for conversion."""

    # check if user pass some repo to both disablerepo and enablerepo options
    pkghandler.has_duplicate_repos_across_disablerepo_enablerepo_options()

    # checking if /mnt and /sys are read-write
    loggerinst.task("Convert: Checking /mnt and /sys are read-write")
    utils.check_readonly_mounts()

    # package analysis
    loggerinst.task("Convert: List third-party packages")
    pkghandler.list_third_party_pkgs()

    # remove excluded packages
    loggerinst.task("Convert: Remove excluded packages")
    pkghandler.remove_excluded_pkgs()

    # handle special cases
    loggerinst.task("Convert: resolve possible edge cases")
    special_cases.check_and_resolve()

    if not toolopts.tool_opts.disable_submgr:
        loggerinst.task("Convert: Subscription Manager - Download packages")
        subscription.download_rhsm_pkgs()
        loggerinst.task("Convert: Subscription Manager - Replace")
        subscription.replace_subscription_manager()
        loggerinst.task("Convert: Install RHEL certificates for RHSM")
        system_cert = cert.SystemCert()
        system_cert.install()
        loggerinst.task("Convert: Subscription Manager - Subscribe system")
        subscription.subscribe_system()
        loggerinst.task("Convert: Get RHEL repository IDs")
        rhel_repoids = repo.get_rhel_repoids()
        loggerinst.task(
            "Convert: Subscription Manager - Check required repositories")
        subscription.check_needed_repos_availability(rhel_repoids)
        loggerinst.task(
            "Convert: Subscription Manager - Disable all repositories")
        subscription.disable_repos()
        loggerinst.task(
            "Convert: Subscription Manager - Enable RHEL repositories")
        subscription.enable_repos(rhel_repoids)

    # remove non-RHEL packages containing repofiles or affecting variables in the repofiles
    loggerinst.task("Convert: Remove packages containing repofiles")
    pkghandler.remove_repofile_pkgs()

    # comment out the distroverpkg variable in yum.conf
    loggerinst.task("Convert: Patch yum configuration file")
    redhatrelease.YumConf().patch()

    # perform final checks before the conversion
    loggerinst.task("Convert: Final system checks before main conversion")
    checks.perform_pre_ponr_checks()
    def test_patch_yum_conf_missing_distroverpkg(self):
        yum_conf = redhatrelease.YumConf()
        yum_conf._yum_conf_content = YUM_CONF_WITHOUT_DISTROVERPKG

        for version in self.supported_rhel_versions:
            system_info.version = version

            # Call just this function to avoid unmockable built-in write func
            yum_conf._comment_out_distroverpkg_tag()

            self.assertFalse("distroverpkg=" in yum_conf._yum_conf_content)
            self.assertEqual(yum_conf._yum_conf_content.count("distroverpkg="),
                             0)
示例#3
0
    def patch_yum_conf(self, yum_conf_content):
        yum_conf = redhatrelease.YumConf()
        yum_conf._yum_conf_content = yum_conf_content

        for version in self.supported_rhel_versions:
            system_info.version = version

            # Call just this function to avoid unmockable built-in write func
            yum_conf._insert_distroverpkg_tag()

            self.assertTrue(
                "\ndistroverpkg=redhat-release" in yum_conf._yum_conf_content)
            self.assertEqual(
                yum_conf._yum_conf_content.count("\ndistroverpkg="), 1)
    def test_patch_yum_conf_existing_distroverpkg(self):
        yum_conf = redhatrelease.YumConf()
        yum_conf._yum_conf_content = YUM_CONF_WITH_DISTROVERPKG

        for major in self.supported_rhel_versions:
            system_info.version = namedtuple("Version",
                                             ["major", "minor"])(major, 0)

            # Call just this function to avoid unmockable built-in write func
            yum_conf._comment_out_distroverpkg_tag()

            self.assertTrue("#distroverpkg=" in yum_conf._yum_conf_content)
            self.assertEqual(
                yum_conf._yum_conf_content.count("#distroverpkg="), 1)
示例#5
0
def pre_ponr_conversion():
    """Perform steps and checks to guarantee system is ready for conversion."""
    loggerinst = logging.getLogger(__name__)

    # remove blacklisted packages
    loggerinst.task("Convert: Remove blacklisted packages")
    pkghandler.remove_blacklisted_pkgs()

    # checking RHN Classic
    loggerinst.task("Checking RHN Classic")
    subscription.unregister_from_rhn_classic()

    # install redhat release package
    loggerinst.task("Convert: Install Red Hat release package")
    redhatrelease.install_release_pkg()
    # replace distroverpkg variable in yum.conf
    loggerinst.task("Convert: Patch yum configuration file")
    redhatrelease.YumConf().patch()

    if systeminfo.system_info.version == "5":
        cert.copy_cert_for_rhel_5()

    # package analysis
    loggerinst.task("Convert: Package analysis")
    repos_needed = repo.package_analysis()

    if toolopts.tool_opts.disable_submgr:
        loggerinst.task("Convert: Check required repos")
        repo.check_needed_repos_availability(repos_needed)
    else:
        loggerinst.task("Convert: Subscription Manager - Install")
        subscription.install_subscription_manager()
        loggerinst.task("Convert: Subscription Manager - Subscribe system")
        subscription.subscribe_system()
        loggerinst.task("Convert: Subscription Manager - Check required repos")
        repo.check_needed_repos_availability(repos_needed)
        loggerinst.task("Convert: Subscription Manager - Disable all repos")
        subscription.disable_repos()
        loggerinst.task("Convert: Subscription Manager - Enable needed repos")
        subscription.enable_repos(repos_needed)
        # TODO: Replace renaming .repo files by using --enable for yum command
        loggerinst.task("Convert: Subscription Manager - Rename repos")
        subscription.rename_repo_files()
示例#6
0
def pre_ponr_conversion():
    """Perform steps and checks to guarantee system is ready for conversion."""
    loggerinst = logging.getLogger(__name__)

    # check if user pass some repo to both disablerepo and enablerepo options
    pkghandler.has_duplicate_repos_across_disablerepo_enablerepo_options()

    # package analysis
    loggerinst.task("Convert: List third-party packages")
    pkghandler.list_third_party_pkgs()

    # remove excluded packages
    loggerinst.task("Convert: Remove excluded packages")
    pkghandler.remove_excluded_pkgs()

    if not toolopts.tool_opts.disable_submgr:
        loggerinst.task("Convert: Subscription Manager - Replace")
        subscription.replace_subscription_manager()
        loggerinst.task("Convert: Install RHEL certificates for RHSM")
        system_cert = cert.SystemCert()
        system_cert.install()
        loggerinst.task("Convert: Subscription Manager - Subscribe system")
        subscription.subscribe_system()
        loggerinst.task("Convert: Get RHEL repository IDs")
        rhel_repoids = repo.get_rhel_repoids()
        loggerinst.task(
            "Convert: Subscription Manager - Check required repositories")
        subscription.check_needed_repos_availability(rhel_repoids)
        loggerinst.task(
            "Convert: Subscription Manager - Disable all repositories")
        subscription.disable_repos()
        loggerinst.task(
            "Convert: Subscription Manager - Enable RHEL repositories")
        subscription.enable_repos(rhel_repoids)

    # remove non-RHEL packages containing repofiles or affecting variables in the repofiles
    loggerinst.task("Convert: Remove packages containing repofiles")
    pkghandler.remove_repofile_pkgs()

    # comment out the distroverpkg variable in yum.conf
    loggerinst.task("Convert: Patch yum configuration file")
    redhatrelease.YumConf().patch()
示例#7
0
def post_ponr_conversion():
    """Perform main steps for system conversion."""

    loggerinst.task("Convert: Import Red Hat GPG keys")
    pkghandler.install_gpg_keys()
    loggerinst.task("Convert: Prepare kernel")
    pkghandler.preserve_only_rhel_kernel()
    loggerinst.task("Convert: Replace packages")
    pkghandler.replace_non_red_hat_packages()
    loggerinst.task("Convert: List remaining non-Red Hat packages")
    pkghandler.list_non_red_hat_pkgs_left()
    loggerinst.task("Convert: Configure the bootloader")
    grub.post_ponr_set_efi_configuration()
    loggerinst.task("Convert: Patch yum configuration file")
    redhatrelease.YumConf().patch()
    loggerinst.task("Convert: Lock releasever in RHEL repositories")
    subscription.lock_releasever_in_rhel_repositories()

    breadcrumbs.breadcrumbs.finish_success()

    return
示例#8
0
def pre_ponr_conversion():
    """Perform steps and checks to guarantee system is ready for conversion."""
    loggerinst = logging.getLogger(__name__)

    # remove excluded packages
    loggerinst.task("Convert: Remove excluded packages")
    pkghandler.remove_excluded_pkgs()

    # install redhat release package
    loggerinst.task("Convert: Install Red Hat release package")
    redhatrelease.install_release_pkg()
    # replace distroverpkg variable in yum.conf
    loggerinst.task("Convert: Patch yum configuration file")
    redhatrelease.YumConf().patch()

    # package analysis
    loggerinst.task("Convert: List third-party packages")
    pkghandler.list_third_party_pkgs()
    if not toolopts.tool_opts.disable_submgr:
        loggerinst.task("Convert: Subscription Manager - Install")
        subscription.install_subscription_manager()
        loggerinst.task("Convert: Subscription Manager - Subscribe system")
        subscription.subscribe_system()
        loggerinst.task("Convert: Get RHEL repository IDs")
        rhel_repoids = repo.get_rhel_repoids()
        loggerinst.task(
            "Convert: Subscription Manager - Check required repositories")
        subscription.check_needed_repos_availability(rhel_repoids)
        loggerinst.task(
            "Convert: Subscription Manager - Disable all repositories")
        subscription.disable_repos()
        loggerinst.task(
            "Convert: Subscription Manager - Enable RHEL repositories")
        subscription.enable_repos(rhel_repoids)
        # TODO: Replace renaming .repo files by using --enable for yum command
        loggerinst.task("Convert: Subscription Manager - Rename repositories")
        subscription.rename_repo_files()
示例#9
0
    def test_get_yum_conf_content(self):
        yum_conf = redhatrelease.YumConf()

        self.assertTrue("Dummy file to read" in yum_conf._yum_conf_content)